tôi có thể khai báo một con trỏ đến một lớp học mà vẫn chưa được xác định, như thế này:Tuyên bố lớp lồng nhau trước khi chúng được định nghĩa
class A ;
A* p ;
Nhưng làm thế nào để tôi làm điều này cho một lớp lồng nhau? Tôi muốn làm điều này:
class A ;
class A::B ; // error: 'B' in class 'A' does not name a type
A::B* p ;
Nhưng nó không biên dịch (sử dụng g ++ 4.5.2). Có cách nào để thực hiện công việc này không?
Chỉ cần không làm tổ B nếu bạn cần. (Bạn có thể nhóm các lớp với các không gian tên. Làm tổ - ít nhất là trong C++ 03 - không thêm giá trị nào khác.) – visitor
Không thể cho đến khi lớp 'A' được xác định. Bạn phải thiết kế lại để không sử dụng các lớp lồng nhau cho đến sau khi định nghĩa của lớp có chứa lớp lồng nhau. –
Xem thêm [Có cách nào ngắn hơn để chuyển tiếp khai báo một lớp trong không gian tên không?] (Http://stackoverflow.com/questions/1368642). – outis