코드를 here에서 얻었습니다.가장 고생스러운 구문 분석
TimeKeeper time_keeper(Timer());
을하지만 return time_keeper.get_time();
가있는 경우에만 발생합니다
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();
}
, 그것으로 인해 라인에 오류를 컴파일 받아야합니다.
이 줄이 중요한 이유는 무엇입니까? 컴파일러는 time_keeper(Timer())
구조에서 모호한 부분을 나타냅니다.
의 중복 가능성 (http://stackoverflow.com/questions/3810570/why-is- :
이것은 컴파일러가 코드를 보려면 어떻게 거기에 no-call-to-the-constructor) – Mark