[C++11] Explicit virtual overrides
C++11에선 명시적으로 가상 함수를 오버라이딩을 할 수 있다. 만약 가상 함수가 부모의 가상 함수를 오버라이딩 하지 않고 비가상 함수를 오버라이딩(재정의) 하는 경우 컴파일 단위에서 에러를 나타낼것이다. #include class A { public: virtual void foo() = 0; void bar(); }; class B : public A { public: void foo() override; // correct -- B::foo overrides A::foo void bar() override; // error -- A::bar is not virtual void baz() override; // error -- B::baz does not override A::baz }; 이로 인해서..
C++/Modern C++(11, 14, 17, 20)
2023. 8. 25. 15:24