【发布时间】:2014-09-30 12:42:52
【问题描述】:
#include <iostream>
using namespace std;
class ExClass
{
int data;
ExClass(const ExClass&);
public:
ExClass() : data(0) {}
ExClass(int d) : data(d) { cout<<"Constructor"<<endl; }
};
int main()
{
ExClass var(2);
ExClass var2=2;
return 0;
}
为了测试当我使用复制初始化时它是调用复制构造函数还是构造函数,我将复制构造函数设为私有。虽然它适用于 Visual c++ 2005,但代码块 13.12(使用 C++11 标准编译)会出错。
当我按原样运行它时,它会给出:
Constructor
Constructor
作为输入。
我说对了吗认为这意味着 var(2) 和 var2=2 具有相同的含义并且它们都调用了相同的构造函数?
如果是,为什么代码块会出错?由于它不使用复制构造函数,因此它不应该给出错误。
【问题讨论】:
标签: c++ constructor