인터페이스는 비관리코드에서는 순수가상함수만을
가진 클래스와 같습니다. ‘interface class’라는 키워드를 사용하여 정의하면 이 클래스에는
아래와 같은 형만 멤버로 가질 수 있습니다.
함수
프로퍼티
이벤트
또한 선언만 가능하지 정의는 할 수 없습니다.
C++/CLI의 ref class는 C#이나 Java와 같이 다중 상속은 할 수 없지만 인터페이스를 사용하면
다중 상속(즉 인터페이스를 상속)을 할 수 있습니다.
interface class IA {
public:
void funcIA();
};
interface class IB {
public:
void funcIB();
};
interface class IC {
public:
void funcIC();
};
ref class A {
int i;
};
ref class B : A, IA, IB, IC {
public:
virtual void funcIA() { }
virtual void funcIB() { }
virtual void funcIC() { }
};
int main() {
B^ b = gcnew B;
IA^ ia = b;
IB^ ib = b;
IC^ ic = b;
b->funcIA();
ia->funcIA();
ib->funcIB();
ic->funcIC();
return 0;
}
출처
http://cppcli.shacknet.nu/cli:interface
'C++/CLI' 카테고리의 다른 글
[Step. 17] 델리게이트에 비관리 함수를 할당하기 그리고 다음 예고 (2) | 2010.11.17 |
---|---|
[Step. 16] array 클래스에 non-CLI 오브젝트 사용 (0) | 2010.10.27 |
[Step. 15] static 생성자, initonly, literal (1) | 2010.09.24 |
[Step. 13] parameter array (1) | 2010.09.10 |
[Step. 12] for each (1) | 2010.09.03 |