复制(拷贝)构造函数
2014-06-24 23:19
176 查看
复制(拷贝)构造函数接受其所属类的对象作为参数,原型如下 MyClass::MyClass(const MyClass& aClass);
在下述情况下,将使用复制(拷贝)构造函数
1 将新的对象初始化为一个同类对象. MyClass aClass;MyClass bClass(aClass);
2 按值将对象传递给函数. void MyFunction(MyClass aClass);
3 函数按值返回对象. 与第四条吻合,按值返回对象时,编译器总是会产生一个临时对象
4 编译器生成临时对象
如果没有使用(不管是显式或隐式)复制构造函数,编译器将提供原型,但不提供函数定义.否则,程序将定义一个执行成员初始化的复制构造函数,也就是说,新对象的每个成员都被初始化为原始对象相应成员的值
带有指针类型的成员变量的类通常需要进行深拷贝,或者类可能包含需要修改的静态变量,此时,最好自己定义个复制构造函数并进行深拷贝.
在下述情况下,将使用复制(拷贝)构造函数
1 将新的对象初始化为一个同类对象. MyClass aClass;MyClass bClass(aClass);
2 按值将对象传递给函数. void MyFunction(MyClass aClass);
3 函数按值返回对象. 与第四条吻合,按值返回对象时,编译器总是会产生一个临时对象
4 编译器生成临时对象
如果没有使用(不管是显式或隐式)复制构造函数,编译器将提供原型,但不提供函数定义.否则,程序将定义一个执行成员初始化的复制构造函数,也就是说,新对象的每个成员都被初始化为原始对象相应成员的值
带有指针类型的成员变量的类通常需要进行深拷贝,或者类可能包含需要修改的静态变量,此时,最好自己定义个复制构造函数并进行深拷贝.
相关文章推荐
- 为什么需要拷贝(复制)构造函数
- C++拷贝(复制)构造函数详解
- 析构函数、复制构造函数,operator=以及深拷贝浅拷贝问题
- 对象作为参数和返回值 复制(拷贝)构造函数
- C++自定义拷贝(复制)构造函数的用途
- C++中拷贝(复制)构造函数和赋值运算符重载函数
- C++:复制构造函数___浅拷贝
- 拷贝(复制)构造函数
- 拷贝(复制)构造函数和赋值函数
- C/C++开发语言系列之26---C++复制(拷贝)构造函数
- 学习笔记:复制(拷贝)构造函数
- 构造函数,复制构造函数与拷贝赋值操作符
- 关于拷贝(复制)构造函数为什么不能用值传递
- 批注:C++中复制构造函数与重载赋值操作符总结:默认浅拷贝,带指针的需要深拷贝
- C++之--拷贝(复制)构造函数
- 派生类的构造函数和复制控制
- 拷贝构造,深度拷贝,关于delete和default相关的操作,explicit,类赋初值,构造函数和析构函数,成员函数和内联函数,关于内存存储,默认参数,静态函数和普通函数,const函数,友元
- 类对象的复制和拷贝问题
- 何时调用构造函数,复制构造函数,析构函数