【发布时间】:2013-02-24 22:09:41
【问题描述】:
我有一个基类和派生类。我需要访问派生类中基类的受保护成员。但是,Eclipse 不允许我访问数据成员,就好像它是派生类的成员一样,而不关心它是否被继承。我该怎么做?
class BaseClass {
protected:
static int a;
int b;
}
class DerivedClass: public BaseClass {
void SomeMethod {
a=10; // cannot resolve symbol
b=10; // cannot resolve symbol
BaseClass::a=10; //does not complain
BaseClass::b=10; //does not complain
}
}
【问题讨论】:
-
作为一个好习惯,我可以建议使用'this-> b'
-
这些是实际的编译器错误还是 Eclipse IDE 提供的语法/语义错误突出显示?
-
当我使用 this-> 时,只有 DerivedClass 的数据成员会显示在自动完成中。我看不到基类的任何数据成员
-
@Bingo:这值得商榷。
-
@Bingo 谢谢,使用
this->有效。它是使用模板与基类进行类继承。因此,我想这是需要here
标签: c++ inheritance derived-class data-members