【C++干货基地】特殊函数名的函数:赋值运算符重载

2024-03-18 1505阅读

温馨提示:这篇文章已超过404天没有更新,请注意相关的内容是否还可用!

【C++干货基地】特殊函数名的函数:赋值运算符重载

🎬 鸽芷咕:个人主页

 🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活!


引入

  哈喽各位铁汁们好啊,我是博主鸽芷咕《C++干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的城市有没有这种实惠又全面的零食基地呢?C++ 本身作为一门篇底层的一种语言,世面的免费课程大多都没有教明白。所以本篇专栏的内容全是干货让大家从底层了解C++,把更多的知识由抽象到简单通俗易懂。

⛳️ 推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

文章目录

  • 引入
  • ⛳️ 推荐
  • 一、运算符重载
    • 1.1 == 运算符重载
    • 1.2
    • 二、赋值运算符重载
      • 2.1 赋值运算符重载格式
      • 2.2 赋值运算符重载的行为
      • 2.4 有了自动生成的赋值重载我们还需要自己写吗?
      • 三、前置++ 和 后置++
      • 四、模拟日期类的所有运算重载
        • + 和 += 减 和 减等
        • == 和 != and =
        • 一、运算符重载

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

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

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

          🔥 注意:

          • 不能通过连接其他符号来创建新的操作符:比如operator@
          • 重载操作符必须有一个类类型参数
          • 用于内置类型的运算符,其含义不能改变,例如:内置的整型+,不 能改变其含义
          • 作为类成员函数重载时,其形参看起来比操作数数目少1,因为成员函数的第一个参数为隐藏的this
          • .* :: sizeof ? : . 注意以上5个运算符不能重载。这个经常在笔试选择题中出现。**

            1.1 == 运算符重载

            下面我们就来实践一下再日期类中 == 运算符如何重载, 以往我们在 内置类型 == 运算符返回的都是bool 类型

            • 这样的话返回类型就确定了
            • 运算符重载 的关键字是 operator
            • 函数原型:返回值类型 operator操作符(参数列表)

              🍸 代码演示:

              class Date
              {
              public:
              	Date(int year, int month, int day)
              	{
              		_year = year;
              		_month = month;
              		_day = day;
              	}
              	bool operator==(const Date& d1)
              	{
              		return _year == d1._year
              			&& _month == d1._month
              			&& _day == d1._day;
              	}
              		
              	
              private:
              	int _year;
              	int _month;
              	int _day;
              };
              int main()
              {
              	Date d1(2022, 1, 13);
              	Date d2(2022, 1, 14);
              	Date d3(2022, 1, 13);
              	cout 
              public:
              	Date(int year, int month, int day)
              	{
              		_year = year;
              		_month = month;
              		_day = day;
              	}
              	bool operator==(const Date& d1)
              	{
              		return _year == d1._year
              			&& _month == d1._month
              			&& _day == d1._day;
              	}
              		
              	bool operator
VPS购买请点击我

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

目录[+]