Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
А в чем тогда проблема? 15.07.03 08:49 Число просмотров: 1127
Автор: makeworld Статус: Member
|
> Дык этот базовый и делай абстрактным. В общепринятой > терминологии любой класс, имеющий виртуальные функции > называется абстрактным (кажется так), потому как функции > использовать уже можно а реализация может появиться уже > позже зарелизенного класса.
не совсем так. абстрактный класс - класс имеющий чисто виртуальные функции, т.е. не определенные в этом классе. поэтому нельзя создать обьект такого класса.
> Короче сделай эту функцию виртуальной, тогда "полем типа" > будет vptr - указатель на таблицу виртуальных функций и > присваиваться он будет автоматически при создании объекта. > А из реализации переопределенной виртуальной функции > вызывай общий обработчик (скорее всего он будет реализован > в базовом классе), а после этого (или перед этим) делай > работу, специфичную для каждого класса.
написал два макроса, изменил структуру класса так, что теперь эти функции вызываются только в конструкторах и методах того класса, с указателями которого работают. так что теперь неоднозначности нет.
я, кстати, раньше думал, что чисто виртуальные функции нельзя использовать в базовом классе. я ошибался -) щас попробовал - все ок. если бы функции были большие и их нельзя было оформить как макросы сделал бы так как ты предложил. а так с макросами увеличение быстродействия.. теоретическое -)
|
|
|