ユーザ用ツール

サイト用ツール


サイドバー

C++/CLI

CLR

実用編

その他

cli:interface

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;
}



/var/www/html/virtual/cppcli/data/pages/cli/interface.txt · 最終更新: 2013/12/23 09:08 (外部編集)