struct X
{
X() { std::cout << "X()\n"; }
X(int) { std::cout << "X(int)\n"; }
};
const int answer = 42;
int main()
{
X(answer);
}
이 중 하나를 인쇄 할 것으로 예상했을 것입니다.
X(int)
때문에X(answer);
에서 캐스트로 해석 될 수int
로X
, 또는X(answer);
변수의 선언으로 해석 될 수 있기 때문에 전혀 없습니다 .
그러나 인쇄X()
X(answer);
되고 기본 생성자를 호출하는 이유를 모르겠습니다 .
보너스 포인트 : 변수 선언 대신 임시로 변경하려면 무엇을 변경해야합니까?