注册 登录
编程论坛 C++教室

如何理解拷贝构造函数?

发布于 2011-06-21 17:12, 370 次点击
RT,初学C++~
5 回复
#2
追风十三少2011-06-21 17:29
拷贝构造函数在三种情况下会被调用 1.用已有对象初始化新对象,2.函数的返回值为一个对象时,3.当数据成员为一个对象是会被调用,
具体的说拷贝构造函数就是用来初始化的。
#3
pangding2011-06-21 18:01
构造函数都是用来初始化的。

拷贝构造函数从语法上就可以看出来,用一个类实例来初始化它本身的就是拷贝构造函数。
一般会定义成下面这个样子:
class_name(const class_name &)

这个概念本身不难。另外就是要体会,在什么情况下它会被调用到,什么时候拷贝构造函数是必要的,之类的问题。
后一个问题主要是深拷贝和浅拷贝的问题。
#4
lianjiecuowu2011-06-22 11:07
哎呀,懂了
#5
2011-06-24 22:30
以下是引用追风十三少在2011-6-21 17:29:27的发言:

拷贝构造函数在三种情况下会被调用 1.用已有对象初始化新对象,2.函数的返回值为一个对象时,3.当数据成员为一个对象是会被调用,
具体的说拷贝构造函数就是用来初始化的。
第一个用途一般用于什么情况?
#6
pangding2011-06-25 00:56
回复 5楼 qwerwqily
A a;
A b = a;
或者
A b(a)
就是最简单的情况。

另外,如果声明函数
return_type function (A a);
然后代码里
A obj;
function(obj)
要用 obj 初始化函数参数。应该也属于第一种情况。
1