C++类对象的深拷贝、浅拷贝构造函数

C++类对象的深拷贝、浅拷贝构造函数,第1张

C++类对象的深拷贝、浅拷贝构造函数,第2张

在学习本章之前,我们已经学习了类构造函数和析构函数的相关知识。对于常见类型的对象,它们之间的复制非常简单,例如:

int a = 10
int b = a;

我们自己定义的类的对象也是对象,没有人能阻止我们通过以下方式复制它们,例如:

# include
usingnamespacetd;
class Test
{
public:
Test(int temp)
{
P1 = temp;
}
protected:
int P1;
};
void main()
{
Test a(99);
测试b = a;
}

普通对象和类对象是同一个对象,在特性上有相同点也有不同点。类对象中有成员变量,但没有普通对象。当相同的复制方法出现在不同的对象上时,系统将对它们进行不同的操作。就类对象而言,同类型类对象通过复制构造函数来完成整个复制过程。在上面的代码中,我们没有看到复制构造函数,但是也完成了复制工作。这还是因为当一个类没有自定义的复制构造函数时,系统会自动提供一个默认的复制构造函数来完成复制工作。

下面,为了说明情况,就一般情况而言(以上面的代码为例),我们先定义一个与系统默认复制构造函数相同的复制构造函数,看看它的内部是如何工作的!

代码如下:

#include
usingnamespacestd;
classTest
{
public:
Test(inttemp)
{
p1=temp;
}
Test(Test &c_t)//这里就是自定义的拷贝构造函数
{
cout

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++类对象的深拷贝、浅拷贝构造函数

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情