Re: Чем заменить виртуальные функции?
От: Sm0ke Россия ksi
Дата: 08.08.23 18:32
Оценка:
Здравствуйте, zelenprog, Вы писали:

Z>Добрый день!


Z>Есть среда программирования, которая не в полной мере поддерживает ООП.

Z>В ней можно создавать и наследовать классы, но нету возможности использовать виртуальную функцию.
Z>Если в базовом классе вызвать виртуальную функцию, то даже если она переопределена в классе-наследние, все равно будет вызвана функция базового класса.

Z>Чем можно заменить виртуальные функции в данном случае?

Z>Виртуальные функции очень нужны.

Z>Грубый пример. Есть базовый класс, который читает данные из БД.

Z>Создается несколько наследников, которые переопределяют функцию чтения из БД.
Z>Затем создаются несколько экземпляров этих наследников, указатели на них сохраняются в массиве.
Z>Затем в цикле по массиву нужно вызвать функцию чтения.
Z>Как это сделать без виртуальных функций?

Если это скриптовый язык с динамической типизацией, который позволяет в массив складывать объекты разных типов
то
Попробуйте обойтись без наследования вовсе. Просто отдельные классы, в которых есть метод с одинаковым именем и набором параметров.
Обычные не виртуальные методы.

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