2011-09-16 5 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]; 
    } 
} 

가고, 모두 : 예를 들어, 당신은이 클래스를 래핑합니다.

간단히 대답하면 관리 기능에 네이티브 기능을 어떻게 적용할지 다시 정의하고 결정해야합니다. 이것이 포장의 의미입니다.