1. Native Type와 Managed Type 교차 상속 불가(H.Sutter에 의하면 지원 예정이라고.)
class Native {};
ref class Managed: public Native {}; //불가
ref class Clr {};
class Native : public Managed {}; //불가
C++
복사
2. Managed Type의 멤버로 Native Type 객체 생성 불가. 단, pointer Type일 경우에는 가능.
class Native {};
ref class Clr
{
public:
Native native; //불가
Native* pNative; //가능
};
C++
복사
3. Native enum 역시 마찬가지. Managed Type 내부에 Native enum 정의 불가
ref class Clr
{
enum { nativeEnum }; //불가
}
C++
복사
4. Managed Type의 Method 안에서는 Native Type 생성 및 사용 가능(포인터, 객체 모두 포함해서)
class Native {};
ref class Clr
{
void Method()
{
Native n; //가능
Native* pNative = new Native; //가능
}
}
C++
복사
5. Managed Type의 Method signature에 Native Type이 포함된 경우, 사용은 가능하나 metadata로 빠지지 않음(다른 CLR language와 호환 불가)
class Native {};
ref class Clr
{
Native MethodIncludeNative(); //가능하나 다른 CLR 언어와 호환되지 않음
void MethodIncludeNative(Native n); //가능하나 다른 CLR 언어와 호환되지 않음
}
C++
복사
댓글 백업