C++ 中的“引數相關查詢”(“Koenig 查詢”)是什麼?


引數相關的查詢(ADL)是用於在函式呼叫表示式中查詢不合格函式名稱的協議。

這些函式呼叫表示式包括對過載運算子的隱式函式呼叫。

除了通常考慮的不合格名稱查詢所考慮的作用域和名稱空間外,在引數的名稱空間中還會查詢函式名稱。引數相關查詢允許使用在不同名稱空間中定義的運算子。

示例

namespace MyNamespace{
   class A {};
   void f( A &a, int i) {}
}
int main() {
   MyNamespace::A a;
   f( a, 0 );    //calls MyNamespace::f
}

對函式呼叫 f 的查詢取決於引數 a。引數 << 和 >> 也適用於此情況,當我們使用諸如 cout、cin、endl 等內容時,會在 std 名稱空間中查詢這些內容。

更新於:2020 年 2 月 12 日

227 閱讀

開啟您的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.