Heim >Backend-Entwicklung >C++ >Wie kann ich die Ausgabe meiner C-Klasse mithilfe der Operatorüberladung anpassen?

Wie kann ich die Ausgabe meiner C-Klasse mithilfe der Operatorüberladung anpassen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-20 09:23:15463Durchsuche

How Can I Customize the Output of My C   Class Using Operator Overloading?

Anpassen der Ausgabe mit Operatorüberladung für C-Klassen

Betrachten Sie eine benutzerdefinierte C-Klasse, myclass, die Sie erstellt haben. Um die Ausgabe von Werten wie Ganzzahlen oder Gleitkommazahlen zu ermöglichen, wenn cout << x, wobei x eine Instanz von myclass ist, können Sie die Operatorüberladung nutzen.

Um den Einfügeoperator << für Ihre Klasse zu überladen, führen Sie die folgenden Schritte aus:

  1. Deklarieren Sie eine Friend-Funktion innerhalb der Myclass-Definition. Diese Funktion überlastet das << Operator und nehmen Sie zwei Argumente: eine ostream-Referenz und eine Referenz auf eine Instanz von myclass.
  2. Ändern Sie innerhalb der Friend-Funktion die ostream-Referenz, um den gewünschten Wert aus der myclass-Instanz auszugeben.

Hier ist ein Beispiel, das eine Ganzzahl ausgibt:

struct myclass {
    int i;
};

std::ostream &operator<<(std::ostream &os, myclass const &m) {
    return os << m.i;
}

int main() {
    myclass x(10);

    std::cout << x;
    return 0;
}

Ändern Sie für Float-Werte die Ausgabeanweisung im Operator << entsprechend funktionieren. Durch die Implementierung dieser Überladung können Sie die Ausgabe Ihrer Myclass-Instanzen nach Bedarf anpassen.

Das obige ist der detaillierte Inhalt vonWie kann ich die Ausgabe meiner C-Klasse mithilfe der Operatorüberladung anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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