Доступ к защищенному члену класса в производном классе
у меня есть старая кодовая база здесь, где они использовали защищенные переменные-члены. Является ли это хорошей идеей, можно обсудить. Тем не менее, код должен быть скомпилирован нормально с gcc3. У меня есть производный шаблон класса Bar, который использует защищенный член x из шаблона класса Foo, так
template <class Something> class Foo {
public:
// stuff...
protected:
some::type x;
}
template <class Something> Bar : Foo<Something> {
public:
void cleanup();
}
И в объявлении метода cleanup () что-то сделано с х
template <class Something> void Bar<Something>::cleanup() {
doSomeThingCleanUpLike (x);
}
Это не работает с gcc4, хотя должно было работать с gcc3. Это работает, когда я изменяю его
doSomeThingCleanUpLike (this->x);
Почему это так?