2021. 10. 19. 13:15 자기개발/C++
C++ - interface
인터페이스는 특정 기능을 구현할 것을 약속한 추상 형식을 말합니다.
개발자들 사이에 인터페이스 이름은 I로 시작하고 I뒤에 약속하는 기능을 붙이고 있어요. 따라서 Play 기능을 약속하는 인터페이스는 IPlay라고 명명합니다. 물론 인터페이스는 여러 개의 기능을 약속할 수 있겠죠. 이 때도 대표하는 기능을 이름에 포함하세요.
물론 인터페이스를 기반으로 파생한 형식은 약속한 기능을 재정의하여 구체적으로 구현하여야 개체를 생성할 수 있습니다. 다음은 인터페이스 IPlay에서 파생한 Man 클래스에서 약속한 기능 Play를 재정의하여 사용하는 예제 코드입니다.
//인터페이스 정의를 통해 같은 방법으로 다양한 형식 개체 사용
//Program.cpp
#include <iostream>
#include <string>
using namespace std;
#define interface struct
interface IPlay
{
virtual void Play()=0;
};
class Man:public IPlay
{
string name;
public:
Man(string name)
{
this->name = name;
}
virtual void Play()
{
cout<<name<<" 연주하다."<<endl;
}
};
void Concert(IPlay *iplay)
{
iplay->Play();
}
int main()
{
Man *man = new Man("홍길동");
Concert(man);
delete man;
return 0;
}
실행결과
홍길동 연주하다.
출처 : https://ehpub.co.kr/
'자기개발 > C++' 카테고리의 다른 글
| [C++] xlxs 파일 불러오기 VS2017 (XLNT 라이브러리 사용) (0) | 2023.02.09 |
|---|---|
| C++ - CString Format (0) | 2022.10.13 |
| C++ - inline함수란(feat 매크로함수 + template) (0) | 2021.10.07 |
| C++(mfc) - 1채널 이미지를 3채널 이미지로 변환후 사각형그리고 저장 (0) | 2021.09.17 |
| C++ - 이미지 생성, 주소값으로 전달 후 저장 (0) | 2021.09.17 |