본문 바로가기
책 정리/Effective C++ 3rd

항목 53. 컴파일러 경고를 지나치지 말자.

by ocean20 2020. 5. 12.
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를 가려버렸다.

 

우리는 우리가 사용하고 있는 컴파일러가 띄워주는 에러미시지들에 어느정도 익숙해지고 나면, 이 외의 다른메시지들의 뜻도 이해하게 되는 수준이 오게된다. (어떤것은 넘어가도 되고, 어떤것은 없애주어야 하는지)

 

우리는 경고메시지의 참 뜻을 명확하게 이해해야하며, 지워나가는 습관을 들어야 한다.

 

이것만은 잊지 말자!

  - 컴파일러 경고를 쉽게 지나치지 말자. 여러분의 컴파일러에서 지원하는 최고수준에도 경고메시지를 내지 않고 컴파일 되는 코드를 만드는쪽에 집중하자.(오류없는 코드를 만들자!)

  - 컴파일러 경고에 너무 기대지 말자. 컴파일러마다 트집을 잡는 부분이 천차만별이기 때문이다. 지금 코드를 다른 컴파일러에서 이식하면, 우리가 익숙해져 있는 경고메시지가 없어질 가능성이 크다.

댓글