我有 A、B 类。B 派生自 A 并受保护,因此为了启用从 B 到 A 的隐式转换,我添加了转换运算符,但是在隐式使用它时出现错误(显式使用时一切正常)。
如何使这段代码工作?
class A
{
public:
int a;
};
class B : protected A {
public:
int b;
operator const A&()const { return *this; }
};
B b;
const A& a = b; // ERROR: error C2243: 'type cast' : conversion from 'const b *' to 'const A &' exists, but is inaccessible
如何使铸造隐式?