3、对于混合Assembly中编译成本机代码的类,实际上只有方法的实现编译成了本机代码,通过平台调用(PInvoke)进行调用,如同C++/CLI或者C#调用本机代码DLL一样。
可以看出,C++/CLI中,除非一个类被明确定义成.NET CTS中的类型,C++类和对象的实现在本质上仍然和传统C++实现类和对象的方法相似,这就是为什么C++/CLI可以实现.NET CLI不支持而C++支持的语言特性,例如多重继承等的本质原因。C++/CLI的本质可以借用一句话来说明:
“.NET的归.NET,C++的还归C++!”
关于C++中类和对象的实现方法,还可以参见《深度探索C++对象模型》一书(《Inside The C++ Object Model》一书的中译本)。