#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
//不建议使用&&等符号 因为它不会发生短路 更改了基本性质
class test{c
public:
test(int a){
cout<<"this is test(int a)----"<<endl;
this->m_a=a;
}
test& operator+(test &t){
cout<<"this is test operator+(test &t)----------"<<endl;
/*test ttt(this->m_a + t.m_a);
return ttt;*/
this->m_a+=t.m_a;
cout<<"m_a----"<<m_a<<endl;
return *this;
}
bool operator&&(test &t){ //同理或者也不发生短路
cout<<"this is bool operator &&(test &t)----"<<endl;
if(this->m_a && t.m_a){
return true;
}else{
return false;
}
}
~test(){
cout<<"this is ~test()-----"<<endl;
}
private:
int m_a;
};
void test1(){
test a1(0);
test a2(20);
//test tt = a1+a2;
if(a2 && (a1+a2) ){ //不会被短路
cout<<"t---"<<endl;
}
else{
cout<<"f----"<<endl;
}
cout<<"hello----------"<<endl;
}
int main(){
test1();
cout<<"=================="<<endl;
int a=0;
if(a&&(a=10)){ //a=10被短路
cout<<"false----"<<endl;
}
cout<<"a: "<<a<<endl;
system("pause");
return 0;
}
不建议重载且和或的重载
最新推荐文章于 2024-02-28 08:56:55 发布