https://m.blog.naver.com/kyed203/220119052093
[cpp] __interface
키워드 c++ 씨플플 pure virtual function 순수 가상 함수 오버라이딩 override overriding 추상 클래스 ab...
blog.naver.com
__interface 키워드는 자바의 interface와 유사한 기능을 제공합니다.
독립적으로 생성될 수 없으며, 반드시 상속받은 뒤 인터페이스의 모든 함수를 구현(오버라이딩)하여야만 사용가능합니다.
__interface 키워드는 class 키워드 없이 독립적으로 사용됩니다.
해당 키워드가 붙은 형식은 추상클래스가 되며,
내부에서 선언된 모든 멤버 함수들은 virtual 키워드와 =0 (또는 abstract)이 안붙더라도 순수 가상함수가 됩니다.
인터페이스는 멤버 변수를 가질 수 없으며, 멤버 함수만 가질 수 있습니다.
인터페이스는 public 상속만 지원됩니다.
__interface A{
void test(); // 순수 가상함수 취급됨
};
class B : public A{
};
class C : public A{
void test();
};
class D : public A{
void test(){}
};
void main(){
A a; //에러 추상클래스를 생성할 수 없음
B b; //에러 추상클래스를 생성할 수 없음 (인터페이스가 구현되지 않음)
C c; //에러 추상클래스를 생성할 수 없음 (함수 선언만 하고 구현이 안됨)
D d; //정상
}
인터페이스의 객체를 생성할 순 없지만.
포인터 변수는 생성이 가능합니다.
'C++' 카테고리의 다른 글
auto (0) | 2022.04.30 |
---|---|
c++에 있는 문법 정리_펌 (0) | 2022.04.30 |
댓글