Heim > Backend-Entwicklung > C++ > Hauptteil

Warum private virtuelle Methoden in C deklarieren?

Mary-Kate Olsen
Freigeben: 2024-10-24 14:09:31
Original
575 Leute haben es durchsucht

Why Declare Private Virtual Methods in C  ?

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage