본문 바로가기
C++

__interface

by hallojih 2022. 4. 30.

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;  //정상
}

 

인터페이스의 객체를 생성할 순 없지만.

포인터 변수는 생성이 가능합니다. 

 

 

 

728x90
반응형

'C++' 카테고리의 다른 글

auto  (0) 2022.04.30
c++에 있는 문법 정리_펌  (0) 2022.04.30

댓글