class BaseClass
{
    virtual void funcA();
    virtual void funcB() const;
    virtual void funcC(int = 0);
    void funcD();
};

class DerivedClass: public BaseClass
{
    // 부모와 동일한 시그너처의 가상 함수이므로 OK
    virtual void funcA() override;
  
    // 부모의 funcB는 const 한정자가 있으므로, DerivedClass의 funcB는 다른 함수
    // 따라서, 컴파일 에러
    virtual void funcB() override;

    // 부모의 funcC의 인자 타입과 자식의 인자 타입이 다르다. 즉, 다른 함수
    // 따라서, 컴파일 에러
    virtual void funcC(double = 0.f) override;

    // 비가상 함수는 override 키워드 불가, 컴파일 에러
    void funcD() override;
};

아이쿠 나가 고건 몰랐네!