스토리텔링 개발자

[Effective C++] 53. 컴파일러 경고 문제 본문

Effective C++/Effective C++

[Effective C++] 53. 컴파일러 경고 문제

김디트 2024. 7. 29. 10:07
728x90

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

 

 

 

컴파일러 경고의 예시
class B
{
public:
    virtual void f() const;
};

class D : public B
{
public:
    virtual void f(); // const가 아니라서 이름 가려짐
};

// 아마도 아래와 같은 경고가 나올 것이다.
// warning: D::f() hides virtual B::f()
  • 경고는 f 함수가 재선언된 것이 아니라, 이름이 아예 가려진다는 사실을 알려주고 있다.(항목 33 참조)
    • 경고를 읽지 않고 지나치면 오버라이드 되지 않은 상황이 언젠가 버그가 되어 돌아올지도..

 

 

 

결론
  • 어떤 경고 메시지를 없애기 전에, 그 경고의 의미를 정확히 파악하자.
    • 경고 메시지를 없애는 데 급급하다 보면 정말 수정해야 하는 부분을 수정하지 않고 넘어가버릴 수 있다.
  • 컴파일러 경고는 제작사의 고유 선택에 따라 달라지는 것이므로 컴파일러 의존적이다.
    • 그러므로 컴파일러만 믿고 생각 없이 코드를 짜지 말자.
728x90
Comments