class Timer {
public:
Timer();
};
class TimeKeeper {
public:
TimeKeeper(const Timer& t);
int get_time()
{
return 1;
}
};
int main() {
TimeKeeper time_keeper(Timer());
return time_keeper.get_time();
}
從外觀上來看,它應該得到編譯錯誤,由於行:
TimeKeeper time_keeper(Timer());
但如果return time_keeper.get_time();
出現時,它纔會發生。
爲什麼這條線甚至有問題,編譯器會在time_keeper(Timer())
構造中發現模糊性。
的可能重複(http://stackoverflow.com/questions/3810570/why-is-沒有調用的構造函數) – Mark 2013-03-08 18:55:30