快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

博悦平台注册登录:C++类对象的复制拷贝构造函数



在进修这一章内容前我们已经进修过了类的构造函数和析构函数的相关常识,对付通俗类型的工具来说,他们之间的复制是很简单的,例博悦平台注册登录如:

int a = 10;

int b =a;

自己定义的类的工具同样是工具,谁也不能阻拦我们用以下的要领进行复制,例如:

#include

using namespace std;

class Test

{

public:

Test(int temp)

{

p1=temp;

}

protected:

int p1;

};

void main()

{

Test a(99);

Test b=a;博悦平台注册登录

}

通俗工具和类工具同为工具,他们之间的特点有相似之处也有不合之处,类工具内部存在成员变量,而通俗工具是没有的,当同样的复制措施发生在不合的工具上的时刻,那么系统对他们进行的操作也是不一样的,就类工具而言,相同类型的类工具是经由过程拷贝构造函数来完成全部复制历程的,在上面的代码中,我们并没有看到拷贝构造函数,同样完成了复制事情,这又是为什么呢?由于当一个类没有自定义的拷贝构造函数的时刻系统会自动供给一个默认的拷贝构造函数,来完成复制事情。

下面,我博悦平台注册登录们为了阐明环境,就通俗环境而言(以上面的代码为例),我们来自己定义一个与系统默认拷贝构造函数一样的拷贝构造函数,看看它的内部是若何事情的!

代码如下:

#include

using namespace std;

class Te博悦平台注册登录st

{

public:

Test(int temp)

{

p1=temp;

}

Test(T博悦平台注册登录est &c_t)//这里便是自定义的拷贝构造函数

{

cout

上面代码中的Test(Test &c_t)便是我们自定义的拷贝构造函数,拷贝构造函数的名称必须与类名称同等,函数的形式参数是本类型的一个引用变量,且必须是引用。

您可能还会对下面的文章感兴趣: