Например, у меня есть два класса A и B, так что для двух объектов a и b я хочу иметь возможность:
A a;
B b;
а = б;
b = a;
для этого я перегружен оператор =, а операторы typecast:
<code>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.
Есть ли способ обойти это, все еще используя перегруженные операторы типов? А если нет, то, что может быть лучшим способом для достижения моих целей.
Любая помощь будет оценена. Заранее спасибо.