Re[6]: Преимущества NVI в C++ (non virtual interface)
От: minorlogic Украина  
Дата: 30.04.06 09:45
Оценка:
Здравствуйте, remark, Вы писали:

R>Здравствуйте, minorlogic, Вы писали:


M>>Мне кажется вы путаете холодное с зеленым. Проблема о которой вы говорите не решается NVI , она решается банальной правильной декомпозицией функций.

M>>Если есть часть которую необходимо выполнить всегда , она вообще не должна наследоваться и быть в интерфейсе, ни в NVI ни в виртуальном.

R>Не понял функция должна быть в интерфейсе, но не в виртуальном, не в не виртуальном... Так в каком же интерфейсе она должна быть???


Имелось ввиду , что она не должна быть в интерфейсе , а должна скрываться гдет в глубине реализаций.

R>Вообще, это как раз и называется NVI, когда общая часть "не наследуется" и не может перекрываться.



M>>Опять же наследование может быть многоуровневым.


R>С этой проблемой NVI, к сожалению, не может справиться. Только если делать так же несколько уровней NVI, что конечно же не очень красиво.


А ведь согласитесь, такое бывает доаольно часто.


M>>
M>>void CMyDlgDerived::CMyDlg()
M>>   CMyDlg::OnInitDialog();
M>>     // or CParentDlg::OnInitDialog(); ???

M>>  // свои действия
M>>}
M>>


R>

R>Пример забавный
Если сарказьм , то не понял к чему ? имелось ввиду что тут может быть необходимость вызвать какуюнмть функциональность , одной конкретной реализации.


R>
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.