Tôi đang gặp vấn đề tương tự như được mô tả trong liên kết sau đây, trong đó lớp cơ sở được thừa kế riêng cho lỗi "không thể tiếp cận trong ngữ cảnh này" khi tôi cố gắng khai báo một thành viên của lớp cơ sở trong lớp có nguồn gốc: http://bytes.com/topic/c/answers/164246-private-inheritance-renders-class-inaccessibleSự thừa kế riêng ẩn lớp cơ sở với lỗi "không truy cập được trong ngữ cảnh này"
Rõ ràng tham khảo X với :: X hoạt động trong trường hợp trên, nhưng những gì nếu mã là trong một chức năng như:
void fooby()
{
class X {};
class Y : private X {};
class Z : public Y
{
public:
X x; // compiler "inaccessible within this context" error
};
};
thế nào bạn có tham chiếu X trong trường hợp này không?
Nếu fooby là cấu trúc/lớp, thì :: fooby :: X sẽ hoạt động nhưng tôi không chắc chắn cách thực hiện trong trường hợp trên.
Bạn đang cố gắng làm gì với cả thành viên và lớp cơ sở cùng loại? Có lẽ điều đó sẽ giúp với một gợi ý thay thế. –
@Mark B - đây chỉ là một ví dụ đơn giản để minh họa cho hành vi mà tôi đang cố gắng hiểu –