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;
}
posted @ 2023-11-02 20:50  MrHCD  阅读(90)  评论(0)    收藏  举报