Tôi muốn kế thừa từ một lớp lồng nhau, nằm trong phần riêng tư của lớp ngoài. Có thể không?Quyền thừa kế thuộc tầng lớp hữu nghị và riêng tư
class A {
friend class B;
friend class C;
private:
class NiceNestedClass {
};
};
class C {
void a() {
A::NiceNestedClass works;
}
};
class B : A::NiceNestedClass{
};
Việc khởi tạo NiceNestedClass không phải là vấn đề. Nhưng g + + không cho phép tôi thừa kế từ nó. Có bất kỳ công việc xung quanh?
g++ -std=c++11 a.c -o a
a.c:5:11: error: ‘class A::NiceNestedClass’ is private
class NiceNestedClass {
^
a.c:15:14: error: within this context
class B : A::NiceNestedClass{
g ++ 4.8.4, std = C++ 11
Nó hoạt động: http://rextester.com/YIFH82076. Bạn có thể đăng lỗi mà bạn đang gặp phải không? Nó có lẽ không liên quan. –