Private virtuelle Methoden in C erstellen
Man könnte sich fragen, warum eine private Methode in C als virtuell deklariert wird. Ein Beispiel aus einem Open-Source-Projekt verdeutlicht dies:
<code class="cpp">class HTMLDocument : public Document, public CachedResourceClient { private: virtual bool childAllowed(Node*); virtual PassRefPtr<Element> createElement(const AtomicString& tagName, ExceptionCode&); };</code>
Um den Vorteil davon zu verstehen, greifen wir auf die Erkenntnisse von Herb Sutter zurück:
Richtlinie Nr. 2: Bevorzugen Sie private virtuelle Funktionen
Laut Sutter sollten virtuelle Funktionen als privat deklariert werden. Dies ermöglicht es abgeleiteten Klassen, diese Funktionen zur Anpassung zu überschreiben, ohne sie direkt verfügbar zu machen, wie es der Fall wäre, wenn sie lediglich geschützt wären.
Virtuelle Funktionen sollen Flexibilität bieten und nicht direkt aus abgeleitetem Klassencode aufgerufen werden. Daher ist „Privat“ die am besten geeignete Zugriffsebene für virtuelle Funktionen, sofern kein besonderer Bedarf für einen direkten Aufruf besteht.
Das obige ist der detaillierte Inhalt vonWarum private virtuelle Methoden in C deklarieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!