我開始學習C++,我無法找到下面錯誤的原因。此代碼位於「Teach Yourself C++」一書中。運營商的模糊過載>>
的main.cpp:13:錯誤:不明確的重載「運營商>> '給std :: cin >>(int)的IP'
#include<iostream>
using namespace std;
enum ignition_parts {distributor=1,cap,points,plug,condenser,coil,wires,done};
main() {
ignition_parts ip;
do{
cout << "\nInsira no item (1-7, 8 para sair):";
std::cin >> (int)ip;
switch(ip){
case distributor: cout<< "Distribuidor";
break;
case cap: cout<< "Tampa";
break;
case points: cout << "Pontos";
break;
case plug:cout << "Vela";
break;
case condenser: cout<<"Condensador";
break;
case done: break;
default: cout << "No item ignorado";
break;
}
} while (ip != done);
}
你不應該得到多個匹配,你應該沒有得到匹配。 – chris
@chris它有很多匹配需要/同樣不好/隱式的轉換。歡迎來到C++地獄:) – sehe
@sehe,恩,是的。我想說的是,如果編譯器發現同樣的*好的*匹配,那麼編譯器就會非常糟糕,從而導致調用不明確。 – chris