1
我在其中一個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」之前進行。你的情況只允許指針或引用。 –