2009-03-18 2 views
1

Managed C++ looka bit의 인터페이스는 정적 메소드와 멤버를 내부에 허용하기 때문에 이상합니다. 예를 들어 유효한 MC++ 인터페이스는 다음과 같습니다.Managed C++의 인터페이스 클래스

interface class statinterface 
{ 
    static int j; 
    void Method1(); 
    void Method2(); 

    static void Method3() 
    { 
     Console::WriteLine("Inside Method 3"); 
    } 

    static statinterface() 
    { 
     j = 4; 
    } 
}; 

음, 내 질문은 인터페이스에서 정적 메서드를 사용한다는 것입니다. 그리고 가상 테이블에 무슨 일이 일어 났습니까?이 인터페이스를 구현하는 클래스의 가상 테이블은 무엇이 될까요? 마음에 오는 많은 질문이 있습니다. 이러한 유형의 클래스 즉, 인터페이스 클래스는 평범한 추상 클래스와 동일하지 않습니다. 왜냐하면 여기서 비 정적 메서드를 정의 할 수 없기 때문입니다.

나는 단지 인터페이스에서 통계학의 허용을 알고 싶다. 이것은 OOP 원리 IMO에 확실히 틀림 없습니다.

답변

3

이 질문에 대답하는 가장 쉬운 방법은 .NET Reflector를 사용하여 코드에서 생성 된 어셈블리를 검사하는 것입니다.

VTable에는 가상 함수 만 포함되므로 통계는 포함되지 않습니다.

이 언어는 Managed C++가 아니라 C++/CLI로 불립니다 (2002 년 이후로 나빴습니다).

이것은 원래 순수 인터페이스의 개념을 포함하지 않은 OOP 원칙과는 아무런 관련이 없습니다.