2016년 3월 7일 월요일

[c++] 오버라이딩 된 함수 호출


오버라이딩된 함수를 호출하는 방법은 간단하다. 소스코드를 보면 한눈에 알아 볼 수 있다.
  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. class AAA  
  5. {  
  6. public:  
  7.     virtual void fct(){  
  8.         cout<<"AAA"<<endl;  
  9.     }  
  10. };  
  11.   
  12. class BBB : public AAA  
  13. {  
  14. public:  
  15.     void fct(){  
  16.         AAA::fct();  
  17.         cout<<"BBB"<<endl;  
  18.     }  
  19. };  
  20.   
  21. int main(void)  
  22. {  
  23.     AAA* a=new BBB;  
  24.     a->fct();    
  25.   
  26.     return 0;  
  27. }  
 위와 같이 fct함수를 그냥 호출 하는 것이 아니라, 16번째 줄처럼 명시적으로 정의가 선언되어 있는 클래스를 범위 지정 연산자로 지정해 주는 것이다. 이 AAA::fct() 코드부분의 의미는 "AAA클래스에 있는 fct 함수를 호출하라" 이다.

댓글 없음:

댓글 쓰기

[Effective C++] 항목 30 : 인라인 함수는 미주알고주알 따져서 이해해 두자.

인라인 함수를 사용하면 컴파일러가 함수 본문에 대해 문맥별 최적화를 걸기가 용이해집니다. 인라인 함수의 아이디어는  함수 호출문을 그 함수의 본문으로 바꿔치기하자는 것  남발했다가는 코드의 크기가 커질 게 뻔하다. 인라인 함수로 부풀려진 ...