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++最令人烦恼的解析.
归档时间: |
|
查看次数: |
1105 次 |
最近记录: |