例1 重载int 和 bool:
#include<iostream>
using namespace std;
class sum{
public:
operator int(){//int类型重载
return 3;
}
operator bool{//bool类型重载
return true;
}
};
int main(){
sum a;
int b=a;//自动转换int类型赋值
bool c=a//自动转换bool类型赋值
cout<<(int)a<<endl<<(bool)a;//编译器无法自动判断类型需要强制转换
return 0;
}
输出{
3
1
}
例2 只重载int:
#include<iostream>
using namespace std;
class sum{
public:
operator int(){
return 3;
}
};
const int N=0;
int main(){
sum a;
int b=a;//自动转换int赋值
cout<<a;//由于只重载了int所以编译器自动装换int
return 0;
}
输出{
3
}