我想从嵌套类继承,该嵌套类在外部类的私有(private)部分中。是否可以?
class A {
friend class B;
friend class C;
private:
class NiceNestedClass {
};
};
class C {
void a() {
A::NiceNestedClass works;
}
};
class B : A::NiceNestedClass{
};
NiceNestedClass的实例化不是问题。但是g++不允许我从它继承。有什么解决方法吗?
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
最佳答案
这是一个已知的gcc错误,早在2013年就已报告
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59482
您的代码是正确的,并且应使用较新版本的gcc(在gcc4.9和更高版本上已修复)进行编译。在我这边(gcc5.3),它可以正常工作。