Gần đây tôi đã bị mắc kẹt trong một tình huống như thế này:
class A
{
public:
typedef struct/class {...} B;
...
C::D *someField;
}
class C
{
public:
typedef struct/class {...} D;
...
A::B *someField;
}
Thông thường bạn có thể khai báo tên lớp:
class A;
Nhưng bạn không thể chuyển tiếp khai báo một kiểu lồng nhau, các nguyên nhân sau đây gây ra lỗi biên dịch.
class C::D;
Có ý kiến gì không?