mit*_*esh 20 c++ constructor class most-vexing-parse
此代码的行为与我的预期不符.
#include<iostream>
using namespace std;
class Class
{
Class()
{
cout<<"default constructor called";
}
~Class()
{
cout<<"destrutor called";
}
};
int main()
{
Class object();
}
Run Code Online (Sandbox Code Playgroud)
我期望输出'默认构造函数',但我没有看到任何输出.问题是什么?
Pra*_*rav 17
没有调用构造函数
因为构造函数实际上永远不会被调用.
Class object();被解释为函数的声明,object不带参数并返回Class[by value] 的对象
尝试 Class object;
编辑:
正如迈克注意到的那样,这与您向编译器提供的代码并不完全相同.是构造函数/析构函数public还是Class结构?
不过google for C++最令人烦恼的解析.