MyClass a=b;和MyClass a(b)效果是一样的
惊奇的发现,如果比较完善的类,都定义了operator=(const MyClass&)以及Myclass::MyClass(const MyClass&)
在声明后面直接赋值的,不会调用operator=,而是MyClass(const MyClass&)
我又孤陋寡闻了
[解决办法]
没错,因为a都不存在,所以是构造不是赋值
[解决办法]
定义这两个,就可以有效防止 浅拷贝嘛.
发布时间: 2012-09-01 09:33:02 作者: rapoo
MyClass a=b;和MyClass a(b)效果是一样的
惊奇的发现,如果比较完善的类,都定义了operator=(const MyClass&)以及Myclass::MyClass(const MyClass&)
在声明后面直接赋值的,不会调用operator=,而是MyClass(const MyClass&)
我又孤陋寡闻了
[解决办法]
没错,因为a都不存在,所以是构造不是赋值
[解决办法]
定义这两个,就可以有效防止 浅拷贝嘛.