GCC 3.4 новые правила разрешения имен
От: McSeem2 США http://www.antigrain.com
Дата: 17.06.04 03:44
Оценка: 6 (1)
Делаем так:
template<class T> base_class
{
public:
   int base_var;
};

template<class T> derived_class : public base_class<T>
{
public:
   int f()
   {
      return base_var;
   }
};

И он не видит base_var. Видит только this->base_var
или (что лучше) base_class<T>::base_var.

Первый вопрос — почему так?
Второй вопрос — если так, то почему резолвится this->base_var? Ведь this это не base_class<T>, это — тот же самый derived_class<T>?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.