Saya baru-baru ini terjebak dalam situasi seperti ini:
class A
{
public:
typedef struct/class {...} B;
...
C::D *someField;
}
class C
{
public:
typedef struct/class {...} D;
...
A::B *someField;
}
Biasanya Anda dapat mendeklarasikan nama kelas:
class A;
Tapi Anda tidak bisa meneruskan menyatakan tipe bersarang, berikut ini menyebabkan kesalahan kompilasi.
class C::D;
Ada ide?