Скажем, у меня есть два класса в двух разных заголовках, которые называются:
class TestA
{
public:
int A;
};
class TestB
{
public:
int B;
};
И я хочу дать им оба оператора присваивания друг другу, так что это выглядит так:
class TestB; //Prototype of B is insufficient to avoid error with A's assignment
class TestA
{
public:
int A;
const TestA &operator=(const TestB& Copy){A = Copy.B; return *this;}
};
class TestB
{
public:
int B;
const TestB &operator=(const TestA& Copy){B = Copy.A; return *this;}
};
Как мне сделать вышеупомянутое, избегая очевидной ошибки, которая возникнет в результате вызова / использования класса TestB, когда он еще не определен?