т использовать виртуальные фун

Автор admin Воскресенье, 14 июня 2009 11:32

т использовать виртуальные функции и прибегнет к RTTI только в случае необходимости. Тем не менее, предполагаемое использование виртуальных функций требует наличия определения базового класса, поскольку на некоторой стадии расширения программы может оказаться, что базовый класс не содержит необходимых виртуальных функций. Если базовый класс взят из библиотеки или по другим причинам неподконтролен вам, единственным решением остается RTTI. Вы определяете новый тип и включаете в него дополнительные функции, а затем в другой точке программы выявляете этот конкретный тип и вызываете функцию. Полиморфизм и расширяемость программы при этом не страдают, поскольку добавление нового типа не требует массового перехода на логику switch. Тем не менее при включении в основную программу новых фрагментов, опирающихся на новые возможности, необходимо организовать идентификацию нового типа. Расширение базового класса может привести к тому, что ради удобства одного конкретного класса во все остальные классы, производные от общей базы, придется включать какую-нибудь бессмысленную заглушку для чисто виртуальной функции. В р


Комментарии закрыты.