개요 | |||
인터페이스 클래스정의 : 소멸자와 순수가상함수만 선언된 클래스. ( 순수가상함수, 추상클래스등의 기본 개념 보기 -> http://igotit.tistory.com/1325 )
동영상. - 클래스위저드로 클래스 자동생성하여 생성자 제거하고 순수가상함수만 추가하면된다. Visual C++ 에서 제공되는 interface 자료형.Visual C++ 에서는 인터페이스 클래스 용도로 사용하기 위한 interface 자료형이 제공되는데, 전혀 특별한 것이 아닌 일반 struct 형과 동일한것. 즉, 헤더파일 combaseapi.h 에 아래처럼 struct 를 재정의한 것일뿐이다.인터페이스로 선언되었음을 명시적으로 보이게 하기 위함이 전부이다.
즉, class, struct, interface 뭘로 선언하든 순수가상함수들로만 구성되어있다면 작용은 동일하다. 기타 : 통상 인터페이스 로 정의될때 코드 가독성 위해 명칭에 I 부착한다. interface 로 선언한 경우 Visual Studio 에서는 class와는 다른 시각적 표현을 보여준다. (아래 그림) Visual Studio 에서 제공하는 클래스 다이아그램 에서도 interface 표현은 아래 그림처럼 일반클래스와는 다르게 처리된다. interface자체는 녹색박스로 표현되면, interface 를 base class 로 하는 derived class 에는 동그라미 가 부착된다.(붉은 박스부분) | |||
|
interface 클래스 주요 활용 특징. | ||||||
요점 : 순수가상함수 성질 AND 클래스 상속 특징에 기반한 활용특징이 전부. 1. 순수가상함수로만 구성된 클래스이므로 스스로는 인스턴스 생성 불가. base 클래스로만 사용되어 상속클래스 만들때 만 사용가능. 2. derived class 에서는 interface 에서 선언한 순수가상함수 구현 필수. 예 : ImyClass 를 base 클래스로 하는 myClass2
3. 함수인자로 (ImyClass * p_imyclass) 로 interface 개체 포인터를 받도록 하고, derived class 개체 포인터 전달 가능. 4. 상기3의 p_imyclass->muFunc1() 호출하면 실제 실행되는것은 myclass2의 myFunc1() 이 실행됨. 예. myclass3 에서 interface 개체포인터로 함수 myFunc1()호출하면 myclass2 (ImyClass 에서 상속된) 의 myFunc1() 실행됨. - 이점 : myclass2와 myclass3 .사이의 코드 결합이 강하지 않으면서 단일 interface 경유하여 접근가능. (참고: 본 성질은 base 클래스를 추상클래스 로 해도 동일함. )
| ||||||
|
첫등록 : 2017년 6월 25일.
최종수정 :
본 글 단축주소 : https://igotit.tistory.com/1331
'VisualStudio.C++.C# > 코딩팁,함수활용,단편' 카테고리의 다른 글
MFC. RGB() 의 4바이트 정수 메모리 저장 바이트 순서. (0) | 2017.07.11 |
---|---|
MFC. 클래스 위저드에서 커스텀 메시지 추가하기. 예: AFX_WM_PROPERTY_CHANGED (0) | 2017.07.10 |
private . protected . public (0) | 2017.06.22 |
GetWindowsDirectory. (0) | 2017.04.16 |
VerQueryValue. (0) | 2017.04.15 |
댓글