Implementieren eines virtuellen Operators
Der Bedarf an einem virtuellen Operator
Das Dilemma der freien Funktionen
Das Problem entsteht, weil „operator
Eine Lösung über Indirektion
Um dieses Dilemma zu lösen, Erwägen Sie das Hinzufügen einer virtuellen Memberfunktion, die das gewünschte Ausgabeverhalten kapselt:
class MyClass {
public:
virtual void print(ostream& out) const; // Virtual output function
};
Angepasster Operator mit virtuellem Verhalten
Wenn die virtuelle Memberfunktion vorhanden ist, können Sie den Operator
ostream& operatorDieser Ansatz behält die korrekte Parameterreihenfolge für die freie Funktion „Operator“ bei und ermöglicht gleichzeitig die Anpassung des Ausgabeverhaltens über die virtuelle Memberfunktion. Unterklassen können die Druckfunktion überschreiben, um ihre eigene benutzerdefinierte Ausgabeformatierung zu implementieren.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3