所以,如果我有以下课程超级:
class Sub : Super {
public:
string member2 = "bla bla 2";
};
继承Super的类Sub:
using namespace std;
int main(){
Sub sub;
cout << sub.member2 << endl;
cout << sub.member << endl; // error: public Super::member is inaccessible
sub.doSth(); // error: public Super::doSth() is inaccessible
}
当我有一个Sub对象时,我甚至无法联系Super的成员,甚至认为他们是公开的。
sudo a2enmod rewrite
但是为什么他们是公开的呢?或者我做错了什么?
答案 0 :(得分:4)
您私下继承Super
。如果您没有提到继承的访问级别,那么这是C ++中class
es的默认值。但请注意,struct
的默认设置为public
。
将您的代码更改为
class Sub : public Super {
public:
string member2 = "bla bla 2";
};
然后member
将可见