struct X
{
X() { std::cout << "X()\n"; }
X(int) { std::cout << "X(int)\n"; }
};
const int answer = 42;
int main()
{
X(answer);
}
Run Code Online (Sandbox Code Playgroud)
我本来希望这打印
X(int),因为X(answer);可以解释为铸件从int到X,或X(answer);可以解释为变量的声明.但是,它打印X(),我不知道为什么X(answer);会调用默认构造函数.
奖励积分:我需要更改什么才能获得临时而非变量声明?