例如,我有两个类A和B,这样对于两个对象a和b,我希望能够做到:
A a;
B b;
a = b;
b = a;
为此我已经重载了=运算符,并且类型转换操作符为:
class A{
-snip-
operator B()const { return B(pVarA); }
};
class B{
-snip-
operator A()const { return A(pVarB); }
};
但是当我尝试编译此代码时,gcc会抛出错误:
error: expected type-specifier before 'B'
对于该行: operator B()const { return B(pVarA);}
我的猜测是,这是由于鸡和鸡蛋问题,因为B类是在A类后定义的.
有没有办法在仍然使用重载的类型转换操作符时绕过这个.如果没有,那么可能是实现目标的最佳方式.
任何帮助将不胜感激.提前致谢.