определение чисто виртуальных функций
От: Аноним  
Дата: 08.04.08 15:03
Оценка:
Давно,читая ветку http://www.rsdn.ru/Forum/?mid=231923
Автор: Павел Кузнецов
Дата: 03.04.03
, видел сообщение

"Чистая виртуальность" и наличие определения вовсе не взаимоисключающие вещи. Чисто виртуальной функцию делают для того, чтобы гарантировать, что (1) она будет обязательно реализована в одном из наследников и что (2) класс будет абстрактным..."

Стал думать также с тех пор. Сегодня доказывал сей факт коллеге и демонстрировал примером кода в студии..все отлично


class base
{
virtual void abstract()=0
 {
   MessageBox(NULL,"pure virtual","",MB_OK);   
 }
}
class derived: public base
{
   void abstract()
  {
      base::abstract();//все ок, меседжбокс виден...
   }
}


к чему это я...открыл в доказательство стандарт, а там:

10.4/2 (С99)

[Note: a function declaration cannot provide both a pure-specifier and a definition
—end note] [Example:
struct C {
virtual void f() = 0 { }; // ill-formed
};
—end example]



так кто прав, стандарт и студия его не поддержала в этом вопросе, или все же копия стандарта у меня не та?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.