Computer >> Máy Tính >  >> Lập trình >> C ++

Tra cứu đối số phụ thuộc (Koenig Lookup) trong C ++ là gì?


Tra cứu phụ thuộc vào đối số (ADL) là một giao thức để tra cứu tên hàm không đủ tiêu chuẩn trong biểu thức gọi hàm.

Các biểu thức gọi hàm này bao gồm các lệnh gọi hàm ngầm định đến các toán tử được nạp chồng.

Tên hàm được tra cứu trong không gian tên của các đối số của chúng ngoài phạm vi và không gian tên được xem xét bằng cách tra cứu tên không đủ tiêu chuẩn thông thường. Tra cứu phụ thuộc vào đối số làm cho nó có thể sử dụng các toán tử được xác định trong một không gian tên khác.

Ví dụ

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

Việc tra cứu một lời gọi hàm đến f phụ thuộc vào đối số a. Trường hợp tương tự cũng được áp dụng cho các đối số như <> được tra cứu trong không gian tên std khi chúng ta sử dụng những thứ như cout, cin, endl, v.v.