C++专项练习错题分析(1)

1、问题:
如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是重载错误
分析:
友元函数重载运算符时,因为没有this指针指向对象,因此参数个数保持和原来一样,运算符至少有一个参数;成员函数重载时,因为有this指针的原因,所以参数个数要少一个。
扩展:
1. 友元函数重载时,参数列表为1,说明是一元,为2是二元;
2. 成员函数重载时,参数列表为空,是一元,为1是二元;
3. 定义重载运算符就像定义函数,函数参数表中参数的个数取决于两个因素:

1)运算符是一元的(一个参数),还是二元的(两个参数)。
2)运算符被定义为全局函数(对于一元是一个参数,对于二元是二个参数),还是成员函数(对于一元没有参数,对于二元是一个参数-此时该类的对象用作左侧参数(*this))
举例:&操作符和+(加号)操作符
friend const Interger& operator(const Interger& a){return a;}
const Interger& operator+(){return *this;}

friend const Interger operator+(const Interger& left,const Interger& right){r eturn Interger(left.i+right.i); }
const Interger operator+(const Interger& right){return Interger(*this.i-right.i);}

2、问题:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值