Warum müssen wir beim Überladen von Einfüge- und Extraktionsoperatoren Friend-Funktionen verwenden?

1 Antworten


  • Beim Überladen des Stream-Einfügungs-Operators und des Stream-Extraktions-Operators sollten Sie das linke Objekt kennen, zum Beispiel schreiben wir cout<<”hello world”; Sehen Sie sich nun das linke Objekt in dieser Anweisung an, das cout ist und dieses Objekt ist nicht das Objekt der Klasse, die Sie entwickeln, cout ist ein Objekt der ostream-Klasse. Jetzt können wir eine Funktion zu einer Mitgliedsfunktion einer Klasse machen, wenn das linke Objekt des Operators zu derselben Klasse gehört, die wir entwickeln.
     
    Angenommen, ich habe eine Datumsklasse und überlade den Operator + für die Datenklasse
    Damit ich zwei Datumsangaben hinzufügen kann,
    Zum Beispiel d3=d1+d2; wobei d1,d2,d3 die Objekte der Datumsklasse sind, schauen Sie sich jetzt den + Operator an Der linke Operand von + Operator ist d1, was das Objekt der Datumsklasse ist jetzt bedeutet dies, dass wir + Operator als Memberfunktion von . überladen können die Klasse,
    Schauen Sie sich ein anderes Beispiel an d3=5+d2; jetzt ist der linke Operand 5, der nicht das Objekt der Klasse date ist, also können wir diese Funktion nicht als Member-Funktion machen
    Wir müssen sie zur Friend-Funktion machen
     

Schreibe deine Antwort

Ihre Antwort erscheint nach der Moderation appear