{{indexmenu_n>20}} ====== interface ====== インターフェイスはC++でいえば、純粋仮想関数のみを含むクラス、のようなものです。キーワードinterface classを用いて定義し、その型は以下の宣言を含むことができます。 * 関数 * プロパティ * イベント もちろん含めることができるのは宣言だけであり、定義することはできません。 C++/CLIのref classはref classに対して単一継承しかできませんが、インターフェースはいくつも多重継承できます。このへんはJavaと同じです。クラスAから派生したクラス Bがあるとし、BはインターフェースIA,IB,ICからも派生しているとするとき、クラスBは以下のように書きます。 interface class IA { public: void funcIA(); }; interface class IB { public: void funcIB(); }; interface class IC { public: void funcIC(); }; ref class A { int i; }; ref class B : A, IA, IB, IC { public: virtual void funcIA() { } virtual void funcIB() { } virtual void funcIC() { } }; int main() { B^ b = gcnew B; IA^ ia = b; IB^ ib = b; IC^ ic = b; b->funcIA(); ia->funcIA(); ib->funcIB(); ic->funcIC(); return 0; }