爲什麼我們沒有看到代碼波紋管的「未定義調用重載函數」錯誤?只是因爲int是一個內置類型?在標準的哪裏可以找到轉換爲內置類型的保證,比如在代碼波紋中?......謝謝!函數過載和類型轉換分辨率
#include <iostream>
using namespace std;
class B {
public:
operator int(){ return 0; }
};
class A {
public:
A(int i) { };
};
void f (int i) { cout << "overload f(int) was used!";};
void f (A a) { cout << "overload f(A) was used!" ;};
int main() {
B b;
f(b);
}
你有沒有試過A可以直接從B構造出來,加入'A :: A(const B&)'? – PiotrNycz
*未定義調用超載函數*,你的意思是*含糊* *?未定義的錯誤在編譯器匹配符號但觸發器未找到時觸發。 –
@大衛是的,我的意思是「模棱兩可」。謝謝。 – alexandreC