拷贝构造函数是一种特殊的构造函数,它的形式如下。
struct Test { Test() { } Test(const Test& other) // 拷贝构造函数 { cout << "Copy constructor" << endl ; } };
什么情况下调用拷贝构造函数
以下几种情况会调用拷贝构造函数。
- 以一个对象初始化另一个对象
- 函数以某个对象为参数
- 函数返回某个对象
- 初始化序列式容器的元素
struct Test { Test() { } Test(const Test& other) { cout << "Copy constructor" << endl ; } }; // 函数以类对象为参数,会调用Test的拷贝构造函数 void TestFunc(Test test) { } // 函数返回类的对象,会调用拷贝构造函数 Test TestFunc1() { Test t ; return t ; } int main () { Test t ; TestFunc(t) ; TestFunc1() ; Test t1(t) ; // 以一个对象初始化另外一个对象,会调用拷贝构造函数 // 初始化序列式容器会调用拷贝构造函数 vector<Test> v(3) ; // 调用一次构造函数及三次拷贝构造函数 system("pause") ; return 0; }
==
作者:
zdd
出处:
http://www.cnblogs.com/graphics/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
本文详细介绍了拷贝构造函数的概念及其在C++中的使用场景,包括以一个对象初始化另一个对象、函数参数传递、函数返回对象及初始化序列式容器元素等情况。

166

被折叠的 条评论
为什么被折叠?



