您的位置:首页 > 健康 > 美食 > 网站建设系统服务_微信小程序模板使用_使用百度地图导航收费吗_第三方营销策划公司有哪些

网站建设系统服务_微信小程序模板使用_使用百度地图导航收费吗_第三方营销策划公司有哪些

2024/12/25 12:40:43 来源:https://blog.csdn.net/2402_83250773/article/details/143089346  浏览:    关键词:网站建设系统服务_微信小程序模板使用_使用百度地图导航收费吗_第三方营销策划公司有哪些
网站建设系统服务_微信小程序模板使用_使用百度地图导航收费吗_第三方营销策划公司有哪些

文章目录

  • 一. 运算符重载
    • 1.1 概念引入
    • 1.2 运算符重载的定义与特性
  • 二. 赋值运算符重载
    • 2.1 概念
  • 2.2 赋值运算符重载的特性

一. 运算符重载

在讲解赋值运算符重载之前,我们需要先了解何为运算符重载。

1.1 概念引入

对于内置类型,我们可以直接使用运算符,比如:int a = 0; a+=1;

但是C++规定,类类型对象(即d1,d2之类的)使用运算符时,需要通过运算符重载的形式给运算符指定新的含义。(简单理解来说,就是类它并不知道+,-,*,/是什么意思,需要我们来定义)

1.2 运算符重载的定义与特性

  1. 运算符重载:是具有特名字的函数
  2. C++规定:类类型对象 使用运算符时,必须转换成调用对应运算符重载,若没有对应的运算符重载,则会编译报错。
  3. 名字:运算符重载函数的名字是由operator后面要定义的运算符共同构成。和其他函数的格式一样,它也具有:返回类型,参数列表,函数体。
  4. 参数:运算符是几元运算符,则函数就有几个参数(即重载运算符函数的参数个数=该运算符作用的运算对象数量)。
    一元运算符有一个参数,而元运算符有两个参数。(一元:解引用*,++,- -,二元:+,-,*乘,/)
    函数的第一个参数是:二元运算符的左侧运算对象;第二个参数:右侧。
    在这里插入图片描述

还有一个问题是:若运算符重载函数里的变量是类里面的私有成员变量,那如何使用呢?

1.提供对应的getxxx函数
2.友元(即在成员函数的最左边加上:friend)
3.重载为成员函数

  1. this:如果这个运算符重载函数是在类里面,是成员函数,那么第一个参数是隐式的this指针,也就是左侧运算对象传给了隐式的this指针。因此运算符重载作为成员函数时,参数比运算对象少一个。
class Data
{
public:Data(int year, int month, int day){_year = year;_month = month;_day = day;}bool operator<(const Data& d)    //this访问的是d1,d是d2的别名{if (_year < d._year)return true;else if (_year == d._year && _month < d._month)return true;else if (_year == d._year && _month == d._month && _day < d._day)return true;//其余情况均不符合,返回falsereturn false;}
private:int _year;int _month;int _day;
};
int main()
{Data d1(2024, 10, 19);Data d2(2024, 10, 2);bool ret1 = d1 < d2;std::cout << ret1 << std::endl;Data d3(2024, 10, 1);Data d4(

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com