C++ 的复制构造函数经常会使用在对象复制的时候。
使用场所:
1 产生副本的时候。如class AAA; AAA a; AAA b(a);
2 对象作为参数传递给函数的时候,对象作为返回值返回的时候。
I 格式:
声明
类名(const 类名& another)
定义
类名::类名(const 类名& another)
II 如果自己不写 系统会有默认复制构造函数。一旦自定义,系统不会再提供。
III 系统提供的默认的复制构造函数 是等位拷贝 浅拷贝。
IV 浅拷贝 会导致内存充析构。会有double free的问题。
V 在类中有堆内存产生的时候,要自己实现深拷贝。
友员
1 同类之间无隐私。
2异类之间有友员。
3 a是b的友员,则通过b的对象去访问b的private成员。
4友员不能继承。
5友员不能传递。