Если BassClass
(sic) и DerivedClass
являются шаблонами, а элемент BassClass
, к которому вы хотите получить доступ из DerivedClass
, не указан в качестве зависимого имени, он не будет виден.
1007 * Е.Г. *
template <typename T> class BaseClass {
protected:
int value;
};
template <typename T> class DerivedClass : public BaseClass<T> {
public:
int get_value() {return value;} // ERROR: value is not a dependent name
};
Чтобы получить доступ, вам нужно дать больше информации. Например, вы можете полностью указать имя участника:
int get_value() {return BaseClass<T>::value;}
Или вы можете явно указать, что имеете в виду члена класса:
int get_value() {return this->value;}