|
|
От: | Аноним | |
| Дата: | 08.04.08 15:03 | ||
| Оценка: | |||
Стал думать также с тех пор. Сегодня доказывал сей факт коллеге и демонстрировал примером кода в студии..все отлично"Чистая виртуальность" и наличие определения вовсе не взаимоисключающие вещи. Чисто виртуальной функцию делают для того, чтобы гарантировать, что (1) она будет обязательно реализована в одном из наследников и что (2) класс будет абстрактным..."
class base
{
virtual void abstract()=0
{
MessageBox(NULL,"pure virtual","",MB_OK);
}
}
class derived: public base
{
void abstract()
{
base::abstract();//все ок, меседжбокс виден...
}
}[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]