读书人

拷贝构造函数解决思路

发布时间: 2012-10-21 09:00:07 作者: rapoo

拷贝构造函数
1. 什么情况下需要显式的声明一个拷贝构造函数?
2. 既然是可以自动生成的函数,那么即使没有显式的声明,它也应该有它的作用吧.就像构造函数用来初始化对象,析构函数用来销毁对象.
3. 除了上面三个函数,还默认生成一个拷贝赋值操作符,它是干什么用的.

[解决办法]
1.当涉及到深拷贝的时候需要显式声明

2.自动生成的功能简单,有时候得到的效果根本就不是你想要的。这还是一个深拷贝与浅拷贝的问题。

3.operator=是遇到这样的式子 比如:
struct A{...};
A obj1,obj2;
obj1=obj2;//这个时候就会使用operator =
一般显示给出拷贝构造函数那么就需要显示给出operator=

读书人网 >C++

热点推荐