C++之类和对象--赋值运算符重载和const成员函数

2024-05-10 1429阅读

目录

1.赋值运算符重载

1.1运算符重载

 1.2赋值运算符重载

1.3其它特性 

2.const成员函数

3.取地址及const取地址操作符重载


C++之类和对象--赋值运算符重载和const成员函数

hello,欢迎大家来到小恶魔频道,今天讲解的是C++里面的赋值运算符重载以及const成员函数

1.赋值运算符重载

1.1运算符重载

运算符重载是一种编程语言特性,它允许开发者为已有的运算符提供自定义的实现。这意味着你可以改变某些运算符在你自定义的类或数据类型上的行为。比如,你可以定义加号运算符(+)如何在你自定义的数据结构上进行运算

class Date
{
public:
	Date(int year, int month, int day)
	{
		_year = year;
		_month = month;
		_day = day;
	}
	int _year;
	int _month;
	int _day;
};
int main()
{
	Date d1(2024, 4, 22);
	Date d2(2024, 1, 1);
	return 0;
}

像以上代码

在这个代码中,我们如何比较d1和d2的是否相同呢?

常规方法:写一个函数去比较

bool Compare(const Date& dt1,const Date& dt2)
{
	return dt1._year == dt2._year
		&& dt1._month == dt2._month
		&& dt1._day == dt2._day;
}

C++之类和对象--赋值运算符重载和const成员函数

 运行完后发现为0,也就是不相等

那么如果接下来我们想要直接比较d1==d2

这时候就会运用到运算符重载

运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似,注意这里说的重载与我们的函数重载不是一个意思

 C++为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其返回值类 型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。

函数名字为:关键字operator后面接需要重载的运算符符号。

函数原型:返回值类型 operator操作符(参数列表)

所以这里我们可以改写为:

bool operator==(const Date& dt1,const Date& dt2)
{
	return dt1._year == dt2._year
		&& dt1._month == dt2._month
		&& dt1._day == dt2._day;
}
int main()
{
	Date d1(2024, 4, 22);
	Date d2(2024, 1, 1);
	cout 
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]