【C++】-关于类和对象的默认成员函数(中)-拷贝构造函数和赋值运算符重载函数

本文详细介绍了C++中的拷贝构造函数,包括其作用、特点和注意事项,特别是引用的作用和const的使用。此外,还讨论了运算符重载的概念,特别是如何通过运算符重载实现自定义类型的比较和赋值操作。文章强调了默认拷贝构造的局限性以及何时需要自定义拷贝构造和赋值运算符重载。最后,文章总结了这两部分内容的重要性,并预告了后续的深入学习话题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

💖作者:小树苗渴望变成参天大树
❤️‍🩹作者宣言:认真写好每一篇博客
💨作者gitee:gitee
💞作者专栏:C语言,数据结构初阶,Linux,C++
在这里插入图片描述

如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧!


前言

今天博主又来更新新的文章了,今天我们接着上面的内容就下两个默认成员函数,讲完这两个,剩下来的两个就简单了,因为用到也不多,今天讲的这个两个也特别的关键,尤其是第一个也不好理解,我尽量使用易懂的语言给大家讲解,而且要用到之前的栈类,日期类,myQueue类,话不多说,我们开始进入正文。


一、案例引入

在我们之前学习的内置类型我定义一个整型变量

int a=10;

此时我想定义一个和a是一样的变量怎么做:

int b=a;

内置类型是这样就可以解决问题了。


对于自定义类型我们如果也这样呢??

Date d1(2023,5,1);
Date d2=d1;

在C++里面是不允许这么赋值的,在传营参的时候也不是直接把对象1直接赋值给对象2,必须要通过调用拷贝构造函数去实现。

拷贝构造函数其实是特殊的构造函数,也是完成初始化操作的,所以有些特性和构造函数一样,无返回值,函数名和类名相同,形参是固定的
拷贝构造函数: 只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。
我们来看具体写法:
在这里插入图片描述
大家可以看到完成我们想要的效果。

解决困惑:
1.为什么要加引用
我给大家举一个例子:

class Date
{
   
public:

	void print()
	{
   
		cout << _year << " " << _month << " " << _day << endl;
	}
	Date()//无参构造函数
	{
   
		_year = 1;
		_month = 1;
		_day = 1;
	}

	Date(const Date& d)//拷贝构造函数
	{
   
		_year = d._year;
		_month = d._month;
		_day = d._day;
	}
private:
	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘柚!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值