CPP操作符重载:operator T()
operator T()提供了一个本类型到T的隐式转换,不允许使用参数
class B
{
private:
int _b;
public:
B(int b):_b(b){}
~B(){}
const int getB()const{return _b;}
bool operator ==(B& b){
return _b == b.getB();
}
};
class A
{
private:
int _a;
public:
A(/* args */){}
A(int a):_a(a){}
~A(){}
const int getA(){return _a;}
operator B(){
return B(this->_a);
}
};
int main()
{
A a(12);
B b(10);
b=a; //可正常运行
a==b; //编译器报错
return 0;
}

浙公网安备 33010602011771号