2011-09-16 9 views
1

演算子のオーバーロードをC++/CLIを使用してアンマネージC++コードでラップするにはどうすればよいですか?演算子のオーバーロードのラップ方法

私は組織のために働いています。私はソースコードにあまりアクセスできないため、オペレータのオーバーロード機能が正確に何をしているかについてはあまり考えていません。では、このメソッドをラップしてC++/CLIで再定義する方法はありませんか?

+0

http://msdn.microsoft.com/en-us/magazine/cc301733.aspxはおそらく良い出発点です – larsmoa

答えて

1

私は完全に理解していませんが、ネイティブコードをラップするということは、マネージド関数でそれをカバーして実行することを意味します。たとえば、あなたがこのクラスをラップしたい:

ここ
//Native code 
class NativeClass 
{ 
    std::vector<int> data; 
public: 
    int operator[] (int index) 
    { 
    return data[index]; 
    } 
} 


//Managed code 
public ref class ManagedClass 
{ 
    NativeClass * nativeClass; 
public: 
    property int default [int] 
    { 
    int get (int index) { return (*nativeClass)[index]; } 
    } 

    int GetData(int index) 
    { 
    return (*nativeClass)[index]; 
    } 
} 

あなたが行く、双方のインデクサと機能を定義することによって、あなたはネイティブのオーバーロードされた演算子を包みます。

簡単な答え管理環境にネイティブ関数をどのように公開するかを再定義して決定する必要があります。これがラッピングの意味です。

関連する問題