5.2.1 무효화 된 멤버 사용하기
기반 클래스에 특정 메서드의 행위를 파생 클래스에서 해당 행위도 하고 다른 행위도 하게 하려고 할 때에는 어떻게 구현해야 할까요? 이 경우에는 무효화 된 기반 클래스의 멤버 메서드를 파생된 곳에서 기반 클래스 명과 스코프 연산자를 붙여 메서드를 호출하면 무효화 된 멤버를 사용할 수 있습니다.
앞선 예제에서 EH 프로그래머의 프로그래밍 메서드를 시간을 입력 인자로 받는 것으로 수정하고 해당 행위에서는 먼저 "생각한 것을 문서화 한다."를 수행하고 기반 클래스에 무효화 된 메서드를 활용하는 예제를 보여 드리겠습니다. Programmer.h와 Programmer.cpp는 같다고 했을 때 바뀌는 부분만 살펴봅시다.
EHProgrammer.h |
#pragma once #include "Programmer.h"
class EHProgrammer: public Programmer { public: EHProgrammer(void); ~EHProgrammer(void); void Programming(int tcnt); };
|
EHProgrammer.cpp |
#include "EHProgrammer.h" EHProgrammer::EHProgrammer(void) { }
EHProgrammer::~EHProgrammer(void) { } void EHProgrammer::Programming(int tcnt) { cout<<"생각을 하고 이를 문서화한다."<<endl; Programmer::Programming(tcnt); } |
Test.cpp |
#include "EHProgrammer.h"
void main() { EHProgrammer *ehclub = new EHProgrammer(); ehclub->Programming(3); delete ehclub; } |
[그림 5.6]
[그림 5.6]을 보면 무효화 된 메서드도 수행됨을 확인할 수 있습니다.
(모든 동영상 강의는 무료입니다.)
'언어 자료구조 알고리즘 > Escort C++' 카테고리의 다른 글
[C++] 연산자 중복 정의 (0) | 2016.04.15 |
---|---|
[C++] 하향 캐스팅 (0) | 2016.04.15 |
[C++] 메서드의 다형성 (0) | 2016.04.15 |
[C++] 개체의 다형성 (0) | 2016.04.15 |
[C++] 파생 시에 액세스 지정 (0) | 2016.04.15 |
[C++] 무효화 (0) | 2016.04.15 |
[C++] 파생 개체 생성 과정 및 초기화 (0) | 2016.04.15 |
[C++] 일반화 관계와 파생 (0) | 2016.04.15 |
[C++] 실현관계 (Realization) (0) | 2016.04.15 |
[C++] 의존 관계 (Dependency) (0) | 2016.04.15 |