Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Поле типа, виртуальные функции или RTTI 14.07.03 08:53 Число просмотров: 1147
Автор: makeworld Статус: Member Отредактировано 14.07.03 08:54 Количество правок: 1
|
> Если тебе необходимо подобное на С, то пожалуй единственное > что тебе остается это завести для обоих типов общий > заголовок и хранить информацию там:
> Задавать поле типа придется самому при создании объектов: > > //...
> {
> MOD_TYPE1 t1;
> t1.type = common_header::type1;
> // initializing and using of t1.t
> func((common_header)&t1);
> }
> ---
В таком случае, если тип нужно заранее указывать, проще просто сделать две функции, каждая из которых будет работать со своим типом указателя. Просто эти функции будут практически идентичны, вот я и хотел упростить их в одну.
> Ну а если пишешь на C++, то у тебя появляется гораздо более > удобный механизм виртуальных функций и RTTI (run-time type > information). Хотя есть крайне мало ситуаций, когда RTTI > действительно необходим. Уж лучше использовать абстрактный > базовый класс, предоставляющий общий интерфейс из > виртуальных функций, для обоих типов. А потом работать с > указателем на этот абстрактный базовый класс.
Пишу на С++, но эта функция является методом базового класса и вызывается только в методах базового класса. Поэтому мне проще сделать две функции, чем усложнять структуру класса, создавая лишний абстрактный базовый класс.
Спасибо за советы!
|
|
|