class B{
public :
virtual void f() const;
};
class D: public B {
public :
virtual void f();
};
* 풀이 : 가상함수인 B::f 를 D::f에서 재정의하겠다는 의도인데, const가 빠짐으로서
컴파일러는 다음과 같은 경고를 띄워준다.
warning: D::f() hides virtual B::f()
말그대로 D::f가 B::f를 가려버렸다.
우리는 우리가 사용하고 있는 컴파일러가 띄워주는 에러미시지들에 어느정도 익숙해지고 나면, 이 외의 다른메시지들의 뜻도 이해하게 되는 수준이 오게된다. (어떤것은 넘어가도 되고, 어떤것은 없애주어야 하는지)
우리는 경고메시지의 참 뜻을 명확하게 이해해야하며, 지워나가는 습관을 들어야 한다.
이것만은 잊지 말자!
- 컴파일러 경고를 쉽게 지나치지 말자. 여러분의 컴파일러에서 지원하는 최고수준에도 경고메시지를 내지 않고 컴파일 되는 코드를 만드는쪽에 집중하자.(오류없는 코드를 만들자!)
- 컴파일러 경고에 너무 기대지 말자. 컴파일러마다 트집을 잡는 부분이 천차만별이기 때문이다. 지금 코드를 다른 컴파일러에서 이식하면, 우리가 익숙해져 있는 경고메시지가 없어질 가능성이 크다.
'책 정리 > Effective C++ 3rd' 카테고리의 다른 글
항목 55. Boo子有親! 부스트를 늘 여러분 가까이에 (0) | 2020.05.12 |
---|---|
항목 54. TR1을 포함한 표준 라이브러리 구성요소와 편안한 친구가 되자 (0) | 2020.05.12 |
항목 52. 위치지정 new를 작성한다면 위치치정 delete도 같이 준비하자 (0) | 2020.05.12 |
항목 51. new 및 delete를 작성할 때 따라야 할 기존의 관례를 잘 알아두자 (0) | 2020.05.12 |
항목 50. new a및 delete를 언제 바꿔야 좋은 소리를 들을지를 파악해 두자 (0) | 2020.04.01 |
댓글