Login
как правильно программировать?
785 просмотров
Перейти к просмотру всей ветки
in Antwort anly 19.09.09 11:09
"Полиморфизм (все функции виртуальные)."
копаясь в проэкте на работе обнаружил бездумное использование virtual функций. Программист 'просто так' сделал кучу функций виртуальными. На самом деле большинство из этих функций не использовались как виртуальные, т.е. наследники их не переопределяли. Дело в том что каждая виртуальная функция увеличивает трудность поддержки кода. Если я хочу изменить аргументы виртуальной функции, то мне нужно быть внимательным чтобы изменить его и у всех переобределённых функций наследников. А если я не замечу у насленика такую функцию - я сделал ошибку, которую компилятор не обнаружит, а вылезет она только во время работы.
Поэтому "все функции виртуальные" считаю недостатком языка.
копаясь в проэкте на работе обнаружил бездумное использование virtual функций. Программист 'просто так' сделал кучу функций виртуальными. На самом деле большинство из этих функций не использовались как виртуальные, т.е. наследники их не переопределяли. Дело в том что каждая виртуальная функция увеличивает трудность поддержки кода. Если я хочу изменить аргументы виртуальной функции, то мне нужно быть внимательным чтобы изменить его и у всех переобределённых функций наследников. А если я не замечу у насленика такую функцию - я сделал ошибку, которую компилятор не обнаружит, а вылезет она только во время работы.
Поэтому "все функции виртуальные" считаю недостатком языка.
Проклят нарушающий межи ближнего своего (Втор.27:17)