伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

C++基础学习--->运算符重载

来源:本站原创 浏览:243次 时间:2021-05-11

运算符重载作用

对已有的运算符重新进行定义,赋予其另外一种功能,以适应不同的数据类型,作用:实现两个自定义的数据类型相加的运算

运算符重载的本质

运算符重载其实就是定义一个函数,在函数体内实现想要的功能,当用到该运算符时,编译器会自动调用这个函数。也就是说,运算符重载是通过函数实现的,它本质上是函数重载。

语法

返回值类型 operator 运算符名称 (形参表列){
//TODO:
}

operator是关键字,专门用于定义重载运算符的函数,和运算符一起构成函数名

加号运算符重载

例:将两个对象的某些属性对应相加

#includeusing namespace std;class Person{public:int m_a;int m_b;//成员函数重载的本质调用Person operator+(Person& p){Person temp;temp.m_a = this->m_a + p.m_a;temp.m_b = this->m_b + p.m_b;return temp;}Person operator+(int num) //在此处进行运算符重载,关键字operator+运算符{Person temp;temp.m_a = this->m_a + num;temp.m_b = this->m_b + num;return temp;}};//全局函数重载//成员函数重载的本质调用//Person operator+ (Person& p1,Person& p2)//{//Person temp;//temp.m_a = p1.m_a + p2.m_a;//temp.m_b =p1.m_b + p2.m_b;//return temp;//}void test01(){Person p1;Person p2;Person p3;p1.m_a = 10;p1.m_b = 10;p2.m_a = 10;p2.m_b = 10;p3 = p1 + p2;  //本质:p3 = p1 operator+(p2)cout << p3.m_a<< endl;cout << p3.m_b << endl;//运算符重载也可以发生函数重载p3 = p1 + 100;  //原型:Person operator+(int num)}int main(){test01();return 0;}

注意
  1. 不是所有的运算符都可以重载,长度运算符sizeof、条件运算符: ?、成员选择符.和域解析运算符::不能被重载
  2. 运算符重载不改变运算符的优先级和结合性
  3. 运算符重载函数不能有默认的参数,否则就改变了运算符操作数的个数
  4. 运算符重载函数既可以作为类的成员函数,也可以作为全局函数
  5. 箭头运算符->、下标运算符[ ]、函数调用运算符( )、赋值运算符=只能以成员函数的形式重载

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net