- PR -

C#のInterfaceの明示的実装をC++/CLIで行う方法

1
投稿者投稿内容
Marble Patio
会議室デビュー日: 2004/04/20
投稿数: 3
投稿日時: 2008-08-05 14:25
初めて質問させていただきます。

C#でinterfaceの実装の際明示的に宣言を行う事でそのインターフェイス型にキャストした時のみの動作を実装できます。

void IDispose.Dispose(){
//dispose code
}

これをC++/CLIで実現する事はできるのでしょうか。
資料(といっても主にMSDNですが、、)を探していてもなかなかわからず。。
よろしくお願いいたします。
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-08-05 15:21
こうかな・・・。
コード:

public interface class ITest
{
public:
virtual void TestMethod();
};

public ref class Hoge : ITest
{
protected:
virtual void TestMethod() = ITest::TestMethod
{
}
};



内部からは、protectedなので、アクセス可能。
外部からは、protectedなので、インターフェース型にキャストしなければアクセス不可。

[追記]
上記は、マネージ型の場合です。
アンマネージ型の場合は、純粋仮想関数による定義となります。

コード:

public class ITest_Unmanage
{
public:
virtual void TestMethod() = 0;
};

public class Hoge_Unmanage : ITest_Unmanage
{
protected:
virtual void ITest_Unmanage::TestMethod()
{
}
};



[ メッセージ編集済み 編集者: くまっち 編集日時 2008-08-05 16:25 ]
1

スキルアップ/キャリアアップ(JOB@IT)