拷贝构造函数

拷贝构造函数

   拷贝构造函数是一种特殊的构造函数由编译器自己调用,创建对象时用已有的同类对象进行初始化,只有一个参数,而且改下形参是对本类对象的引用常用const修饰。

拷贝构造函数的格式

拷贝构造函数的声明:

class类名

{

public:

类名(形参参数)//构造函数的声明/原型

类名(类名&对象名)//拷贝构造函数的声明/原型

...

};

拷贝构造函数的实现:

类名::类名(类名&对象名)//拷贝构造函数的实现/定义

{函数体}

class Dtae

{

   public:

   CDate()

   {}

  CDate(cosnt int year,const int mouth,const int day)

{

_year = year;

_mouth = mouth;

-day = day;

}

CDate(const Date&date )

{

_year = date._year;

_mouth = date._mouth;

_day = date ._day;

}

private:

 int  _year;

int  _mouth;

int  _day;

}

拷贝构造函数的特征

1.他是构造函数的重载。

2.他的参数必需使用同类对象的引用传递,为了避免无限递归。

3.如果没有显式定义,系统会自动的生成一个默认的拷贝构造函数,默认的拷贝构造函数会依次拷贝类的数据成员完成初始化

调用拷贝构造函数的情形

在C++中,下面三种对象需要调用拷贝构造函数(有时也称“复制构造函数”):

1)一个对象作为函数参数,以值传递的方式传入函数体

2)一个对象作为函数返回值,以值传递的方式从函数返回;

3)一个对象用于给另外一个对象进行初始化(常称为赋值初始化);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值