C++运算符重载(operator)

来源:互联网 发布:网络精灵 编辑:程序博客网 时间:2024/06/13 22:19

C++不允许用户自己定义新的运算符,只能对已有的运算符进行重载.

运算符重载:

有5个运算符不允许重载:

1.  . (成员访问运算符).

2. .* (成员指针访问运算符).

3. ::(域运算符).

4. sizeof(尺寸运算符).

5. ?: (条件运算符).

重载时需注意:

1. 不能改变运算符对象的操作个数.

2. 不能改变运算符的优先级别.

3. 不能改变运算符的结合性.

4. 重载运算符的函数不能有默认参数.

5. 重载运算符必须和用户定义的自定义类型的对象一起使用.其参数至少有一个是类对象或类对象的引用.(也就是说.参数不能全部是C++的标准类型.

这样约定是为了防止用户修改用于标准类型结构的运算符性质).

运算符重载格式:

函数类型 operator 运算符名称 (形参列表) {

对运算符的重载处理;

}


例子:
#include <iostream>using namespace std;class Complex {public :Complex();Complex(int r, int i);Complex operator+(Complex &d);//重载+法运算符.void print();private:int i;int r;};Complex::Complex() {this->i = 0;this->r = 0;}Complex::Complex(int i, int r) {this->i = i;this->r = r;}//重载+号.实现两数相加.Complex Complex::operator+(Complex &d) {Complex c;c.i = this->i + d.i;c.r = this->r + d.r;return c;}void Complex::print(){cout<<"("<<i<<","<<r<<")"<<endl;}void main(){Complex c1(3,4), c2(5,6), c3;c3 = c1 + c2;   //这句话类似于:c3 = c1.operator+(c2);cout<<"c1=";c1.print();cout<<"c2=";c2.print();cout<<"c3=";c3.print();}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 坐月子不喜欢婆婆抱宝宝怎么办 宝宝一写字就哭怎么办 4岁宝宝不爱学习怎么办 4岁宝宝不爱写字怎么办 孩子调皮老师不让上学了怎么办 小学生写字握笔握出剪子来怎么办 儿子6岁不会写字怎么办 宝宝在幼儿园不说话怎么办 孩子上幼儿园不说话怎么办 幼儿写数字不写怎么办 小孩不吃饭怎么办 十个月 十个月小孩不爱吃饭怎么办 十个月的小孩不吃饭怎么办 家长要调幼儿园监控怎么办 自己带孩子婆婆生气怎么办 婆婆老是觉得我奶水不够怎么办 1岁小儿特别懒怎么办 17的孩子很懒怎么办 上大班的孩子不愿写字怎么办 快上中班的小朋友不爱学习怎么办 小学生两边肩膀不平应该怎么办 写字右肩膀疼是怎么办 开车久了肩膀疼怎么办 3岁宝宝撕书怎么办 孩子上幼儿园不爱写字怎么办 一年级小孩不爱做作业怎么办 小孩不愿多做作业怎么办 小孩一年级不自觉做作业怎么办 小孩会读不会写怎么办 好多字都不会写怎么办 写作业怎么办才能写快 五周宝宝爱玩不写字怎么办 爱玩手机的小孩怎么办? 一年级学生记不住生字怎么办 一年级小孩记不住生字怎么办 配镜度数高了怎么办 宝宝两岁半不肯坐马桶拉臭臭怎么办 儿子字写得不好 怎么办 小孩不听话不爱读书和写字怎么办 两岁宝宝不愿意穿衣服怎么办 做题粗心不认真怎么办