Я нашел следующий пример на одном из моих курсов на C++. Когда я пытаюсь скомпилировать его, я получаю следующую ошибку:'B :: operator A' использует неопределенный класс 'A'
'B::operator A' uses undefined class 'A'
Почему говорится, что класс A не определен?
#include<iostream>
using namespace std;
class A;
class B
{
int x;
public: B(int i = 107) { x = i; }
operator A();
};
B::operator A() { return x; }
class A
{
int x;
public: A(int i = 6) { x = i; }
int get_x() { return x; }
};
int main()
{
B b;
A a = b;
cout << a.get_x();
system("Pause");
}
Вы не можете использовать это с помощью прямого объявления. В этом случае декларация 'A' должна идти до объявления' B'. В вашем случае разрешены только указатели или ссылки. –