Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Argument-Dependent Lookup (Koenig Lookup) ใน C ++ คืออะไร


การค้นหาที่ขึ้นกับอาร์กิวเมนต์ (ADL) เป็นโปรโตคอลสำหรับค้นหาชื่อฟังก์ชันที่ไม่เหมาะสมในนิพจน์การเรียกใช้ฟังก์ชัน

นิพจน์การเรียกใช้ฟังก์ชันเหล่านี้รวมถึงการเรียกฟังก์ชันโดยนัยไปยังโอเปอเรเตอร์ที่โอเวอร์โหลด

ค้นหาชื่อฟังก์ชันในเนมสเปซของอาร์กิวเมนต์ นอกเหนือจากขอบเขตและเนมสเปซที่พิจารณาโดยการค้นหาชื่อที่ไม่มีเงื่อนไขตามปกติ การค้นหาที่ขึ้นกับอาร์กิวเมนต์ทำให้สามารถใช้ตัวดำเนินการที่กำหนดไว้ในเนมสเปซอื่นได้

ตัวอย่าง

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

การค้นหาฟังก์ชันเรียกใช้ f ขึ้นอยู่กับอาร์กิวเมนต์ a กรณีเดียวกันนี้ใช้กับอาร์กิวเมนต์เช่น <<และ>> ที่ถูกค้นหาในเนมสเปซ std เมื่อเราใช้สิ่งต่างๆ เช่น cout, cin, endl เป็นต้น