Re[8]: Interface
От: MagOnRSDN  
Дата: 08.08.01 06:08
Оценка:
Здравствуйте VladD2, вы писали:

VD>Здравствуйте Шестаков Александр, вы писали:


O>>>А вообще в книжках по основам COM пишут, что никаких версий у интерфейса нет, что-то поменял, меняй GUID и это уже другой интерфейс


VD>Ага! Вот только с GUID-ми в шарпе туго :).


VD>По делу же могу сказать, что читайте описания в первоисточника...

VD>Интерфейс (в COM) есть некая абстракция (для человека) и бинарный стандарт, гарантирующий местоположение методов и описывающий стандарт укладки параметров в стек (или регистры).

VD>Абстрактный класс есть класс, все методы которого не определены. Физически для реализации интерфейсов была взята MS-ная реализация VTbl-а то есть абстрактный класс может использоваться для реализации COM-интерфейсов а может и не являться. Улавливаете?


VD>Стандарт C++ не гарантирует ни то, что методы в VTbl будут расположены в соответствии с их расположением в описании класс ни саму реализацию виртуальных функций через VTbl. C++ — это не бинарный стандарт, а Interface в COM бинарный. То что большинство современных компиляторов похоже на VC, это уж следствие лидерства MS и популярности COM



Привет всем! Я могу сказать что имеено это написанно в такой книжечке как "Основы COM" [Дейл Роджерсон].
Она не толстая и понятная, хотя не новая.



VD>Идея интерфейсов вообще не подразумевает ни классов, ни наследования (они поддерживаются даже в голом C).


VD>.Net пока что не поддерживает множественного наследования. А по мне, чем замораживаться с абстрактными классами, лучше использовать простую и понятную концепцию интерфейса. Причем интерфейса как абстракции, а не как конкретной реализации.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.