Re: Выбирается не та функция
От: Glоbus Украина  
Дата: 04.08.05 08:13
Оценка:
Здравствуйте, Aera, Вы писали:

A>В VC6.0 имеем следующую ситуацию


A>
A>struct base 
A>{
A>  virtual ~base();
A>  virtual void ok();
A>};

A>struct derived : public base
A>{
A>};

A>template<class T> void foobar(T *self)
A>{
  self->>damn();
A>}

A>void foobar(base* self)
A>{
  self->>ok();
A>}

A>void test()
A>{
A>  derived *f=0;
A>  foobar( f ); //  error C2039: 'damn' : is not a member of 'derived'
A>}

A>


A>Кто виноват и что можно сделать, чтобы заставить работать указанный код.


Могу ошибаться, но как мне кажется в данном случае будет вызвана более подходящая функция, полученная при инстанцировании шаблона с параметром T = derived; но derived не имеет метода damn() — отсюда и ошибка.
Удачи тебе, браток!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.