Преимущества NVI в C++ (non virtual interface)
От: minorlogic Украина  
Дата: 29.04.06 09:45
Оценка:
Речь идет о
http://www.ddj.com/dept/cpp/184403760
http://www.gotw.ca/publications/mill18.htm

По работе столкнулся с NVI и возникли вопросы.

1. Неубедительная мотивация для использование NVI.

Читал Herb Sutter но не проникся , вот хочу узнать у того кто проникся , чем обосновано усложнение класса, оверхед на двойную диспечирезацию и т.п
По сравнению с абстрактными интерфейсами .

Добавлю, что абстрактные интерфейсы вводились в C++ именно с целью , заменить PIMPL и другие самопалки.

a. Мотивация при использовании классов , которые предполагают наследование от них
b. Мотивация при использовании классов , которые НЕ предполагают наследование от них.
Уверен , что такая мотивация есть , не высасывал же Сатер это все из пальца ....

2. Укажите преимущества перед абстрактными интерфейсами ( имеются ввиду абстрактные виртуальные функции).
И укажите преимущества перед PIMPL (без виртуальности).

3. Особенно интересует этот момент из контекста...
"And you would never make the virtual function public. All public functions would be non-virtual."

Т.е. рекомендация которая ЯВНО и насквозь противоречит архитектуре самого языка C++ , смотреть Страуструпа.

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