C에서 프라이빗 가상 메서드 만들기
왜 C에서 프라이빗 메서드가 virtual로 선언되는지 궁금할 수도 있습니다. 오픈 소스 프로젝트의 예는 이를 보여줍니다.
<code class="cpp">class HTMLDocument : public Document, public CachedResourceClient { private: virtual bool childAllowed(Node*); virtual PassRefPtr<Element> createElement(const AtomicString& tagName, ExceptionCode&); };</code>
이것의 장점을 이해하기 위해 Herb Sutter의 통찰력을 참조합니다.
지침 #2: 개인 가상 기능 선호
Sutter에 따르면 가상 함수는 비공개로 선언되어야 합니다. 이를 통해 파생 클래스는 단순히 보호된 경우처럼 함수를 직접 노출하지 않고도 사용자 정의를 위해 이러한 함수를 재정의할 수 있습니다.
가상 함수는 파생 클래스 코드에서 직접 호출되는 것이 아니라 유연성을 제공하기 위한 것입니다. 따라서 직접 호출이 특별히 필요한 경우가 아니라면 가상 기능에 대한 액세스 수준은 비공개가 가장 적합합니다.
위 내용은 C에서 개인 가상 메소드를 선언하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!