汽车服务网站建设方案,徐州做汽车销售的公司网站,wordpress建站解析,网站建设价格请咨询兴田德润❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️创做不易#xff0c;麻烦点个关注❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️
❤️❤️❤️❤️❤️❤️❤️❤️❤️文末有惊喜#xff01;献舞一支#xff01;❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️
目录
9.13…❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️创做不易麻烦点个关注❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️
❤️❤️❤️❤️❤️❤️❤️❤️❤️文末有惊喜献舞一支❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️
目录
9.13.7重载运算符符(成员函数实现 推荐)
9.13.8重载/--运算符 9.13.7重载 运算符符(成员函数实现 推荐)
当我们想要实现下面这样的关系时实现对象的比较判断是否相等的情况 此时可以考虑使用类内部的成员函数实现第一类Jery只需要掉用这个函数传一个对象Tom进来然后进行比较就可以了。 结果
不相等结果测试 相等情况测试 9.13.8重载/--运算符 重载的和--运算符有点让人不知所措因为我们总是希望能根据它们出现在所作用对象的前面还是后面来调用不同的函数。解决办法很简单例如当编译器看到a(前置)它就调用operator(a),当编译器看到a (后置)它就会去调用operator(a,int). a(前置)它就调用operator(a), a (后置)它就会去调用operator(a,int) --a(前置--)它就调用operator--(a) a-- (后置--)它就会去调用operator--(a,int) 案例一重载后置 ob 类名 operator(int) { //先保存 旧值 //自增 return old//返回旧值 } 要实现 Tom Jery 案例二重载前置 ob 类名 operator() //没有形参this指针已经有了 { //自增 return *this } 同上案例一大同小异实现 Tom Jery; 结果 完整代码
#include iostream
#include string
#include arrays.husing namespace std;class Person
{friend ostream operator(ostream out,Person ob);friend istream operator(istream in,Person ob);//friend Person operator(Person ob1,Person ob2);
private:int num;string name;float score;
public:Person(){}Person(int num,string name,float score):num(num),name(name),score(score){}//成员函数实现重载加法运算符Person operator(Person ob){Person tmp;tmp.num num ob.num;tmp.name name ob.name;tmp.score score ob.score;return tmp;}//成员函数重载运算符bool operator (Person ob){if(numob.num nameob.name score ob.score)return true;return false;}//重载后置Person operator(int){//保存旧值Person old *this;//this-num;this-name this-namethis-name;this-score;//返回旧值return old;}//重载前置Person operator(){//this-num;this-name this-namethis-name;this-score;//返回旧值return *this;}};
//全局函数重载operator 输出运算符
ostream operator(ostream out,Person ob){outob.num ob.name ob.scoreendl;return out;
}
//全局函数重载operator 输入运算符
istream operator(istream in,Person ob){inob.numob.nameob.score;return in;
}
/*
全局函数重载运算符
//Person operator(Person ob1,Person ob2){
// Person tmp;
// tmp.num ob1.numob2.num;
// tmp.name ob1.nameob2.name;
// tmp.score ob1.scoreob2.score;
// return tmp;
//}
*/
int main()
{Person Jery{101,Jery,99.9f};Person Tom;Tom Jery;coutTomendl;coutJeryendl;//Jery Tom Jery.operator(Tom)//coutJeryTomendl;// if(Jery Tom){
// cout 相等 endl;
// }else{
// cout 不相等 endl;
// }// cout Jery.operator(Tom) endl;return 0;
}/*Person Jery(100,Jery,99.9f);coutJeryendl;Person Jery2(100,Jery2,98.9f);coutJery2;
*/点赞 收藏 关注 ❤️您的支持❤️是我最大的动力❤️相互学习❤️共同进步❤️一起搞钱❤️动动发财的小手❤️ ⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️十星好评Erike的专用模板⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️ 什 么 您 要 打 赏 谢 谢 老 板老 板 大 气