{

오버라이딩이란 무엇인가?

상속 관계에서의 멤버 함수를 재정의 하는 것을 의미한다.


오버로딩이란 무엇인가?

오버로딩은 함수를 확장한다는 의미이다. .. 사실 다른 함수를 같은 이름으로 만드는것이지만, : )


안전하지 않은 오버라이딩의 예는 무엇인가?

1. 재정의 함수와 본래함수가 다른 디폴트 매개변수를 사용 할때, 정말 힘든 디버깅을 할 수 있다.

예)


2. 이름 가림 현상을 들 수 있다. 함수를 찾을때 C++ 에선 제일 먼저 이름을 검색하는데, 이름이 존재하는 이름 구역이 오게 되면, 더 이상 이름을 찾지 않는 규칙이 있기 때문에 "이름을 가릴 수 있다"

예)

요렇게 에러를 벹어 낸다.


요 두개만 피하면, 어느정도 안전한 오버라이딩을 할 수 있을 것이다.

끝~

}



'책 정리 > C++ Coding Standards : C++ 코딩의 정석' 카테고리의 다른 글

항목 43 : Pimpl을 적당히 활용하라. ( Pimpl judiciously. )  (0) 2009.03.31
항목 42 : 내부의 것은 너무 노출시키지 말라. ( Don’t give away your internals. )  (0) 2009.03.31
항목 41 : 특징 없는 값의 집합을 제외하고는 모든 데이터 멤버를 사영으로 하라. Make data members private, except in behaviorless aggregates (C-style structs).  (0) 2009.03.31
항목 40 : 간접 변환을 피하라. ( Avoid providing implicit conversions. )  (1) 2009.03.30
항목 39 : 가상 함수는 비공용으로, 공용 함수는 비가상으로 설정하라. ( Consider making virtual functions nonpublic, and public functions nonvirtual. )  (0) 2009.03.30
항목 37 : 상속의 정확한 의미를 이해하자. 재사용을 위해 상속하는 것은 아니지만, 재사용은 필요하다. ( Public inheritance is substitutability. Inherit, not to reuse, but to be reused. )  (0) 2009.03.02
항목 36 : 추상 인터페이스를 활용하라. ( Prefer providing abstract interfaces. )  (0) 2009.03.02
항목 35 : 기반 클래스로 디자인되지 않은 클래스로부터의 상속을 피하라. ( Avoid inheriting from classes that were not designed to be base classes. )  (0) 2009.03.01
항목 34 : 상속성을 주의해서 사용하라. ( Prefer composition to inheritance. )  (0) 2009.02.28
항목 33 : 최소화된 클래스를 사용 하라. ( Prefer minimal classes to monolithic classes. )  (0) 2009.02.27
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기