【发布时间】:2012-03-25 07:24:31
【问题描述】:
我正在尝试在 Visual Studio (2008) 和 g++ 中编译代码。
在vs2008中是成功的,但是在g++中却报错了。
如果添加const,test(const test &source):a(source.a) {}
g++ 会编译成功。
我知道test aa = 2; 将创建一个临时对象并调用复制构造函数。
临时对象不能绑定到非常量引用
那么,为什么vs2008可以编译成功呢?
class test{
public:
test():a(1) {}
test(int num):a(num) {}
test(test &source):a(source.a) {}
private:
int a;
};
int main(){
test aa = 2;
return 0;
}
【问题讨论】:
标签: c++ visual-studio-2008 g++ copy-constructor