C++基础(拷贝构造函数)

拷贝构造函数

如果⼀个构造函数的第⼀个参数是⾃⾝类类型的引用,且任何额外的参数都有默认值,则此构造函数也叫做拷贝构造函数,也就是说拷贝构造是⼀个特殊的构造函数。
拷⻉构造的特点:

  1. 拷贝构造函数是构造函数的⼀个重载。
	Date(const Date& d)
	{
   
		_year = d._year;
		_month = d._month;
		_day = d._day;
	}
	int main()
{
   
	Date d1(2024, 7, 12);
	d1.Print();
	Date d2(d1);
	d2.Print();

	return 0;
}
  1. 拷贝构造函数的参数第⼀个参数且必须是类类型对象的引用,使用传值方式编译器直接报错,因为语法逻辑上会引发无穷递归调用。
    错误例子
    使用传值会报错需加引用Date(Date&d)
    正确例子
    错误例子修正后

  2. C++规定⾃定义类型对象进行拷贝行为必须调用拷贝构造,所以这里自定义类型传值传参和传值返回都会调⽤拷贝构造完成。

//传引用不想改变实参就把const加上
//void Func1(const Date& d)无外参数改变最好加一个const
void Func1(Date d)
{
   
	cout << &d << endl;
	d.Print(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值