-. .
, - . : -?
, ( : ++) .
, . , - 1, , 1. -, , . vtable ( . ).
, ++, VTables : vtable, , "". , , . (, ), ++ "".
"", , , . , , , "" . , (RPC) , ..
++ ( ) . , "" , "" #, , . , vtable, , .
, . , - ( #):
interface A { Foo(); }
interface B : A { Foo(); }
class B : A { void Foo() {...} }
class D : B,C { }
, , Foo D. vtable D. vtable :
Foo() -> C::Foo()
, D Foo, Foo C:
var tmp = new D();
tmp.Foo();
, B - :
class B : A { void Foo() {...} }
, vtable D, :
Foo() -> C::Foo() or B::Foo()???
, : Foo ? , ? ? ++ .
.NET # , , . , , .
, ( ) .