我以前从未在 C++ 中遇到过这种情况,但奇怪的是它仍然可以编译但没有达到我的预期。有人能告诉我它有什么作用吗?请查看代码,更多信息如下。
#include <iostream>
using namespace std;
class Test{
public:
Test();
};
Test::Test(){ cout << "ctor" << endl; }
int main(void){
Test t(); // this compiles but doesn't call the constructor
return(0);
}
它会编译,但如果我尝试使用“t”它不会。我只依赖于构造函数功能,我的代码没有按预期工作。解决方案是去掉括号“Test t();” 到“测试 t;”。我的问题是“Test t();”中发生了什么 例如,编译器认为正在发生什么让它编译。