Доступ к защищенному члену класса в производном классе

у меня есть старая кодовая база здесь, где они использовали защищенные переменные-члены. Является ли это хорошей идеей, можно обсудить. Тем не менее, код должен быть скомпилирован нормально с 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);

Почему это так?

Ответы на вопрос(2)

Ваш ответ на вопрос