Eintauchen in Klassenvorlagen mit Vorlagenklassenfreunden
Beim Definieren einer Binärbaumklasse (BT) und ihrer Elementklasse (BE). erforderlich, um eine Freundschaftsbeziehung aufzubauen, damit BT auf die privaten Mitglieder von BE zugreifen kann. Es ist jedoch wichtig, die zugrunde liegenden Mechanismen zu verstehen, um die Beziehung richtig zu definieren.
Ursprünglich haben Sie versucht, die Friend-Beziehung als template
Stattdessen sollten Sie unterschiedliche Vorlagenparameternamen verwenden, wie zum Beispiel:
templateclass BE { template friend class BT; };
Diese Deklaration gibt an, dass jede BT-Klasse, unabhängig von ihren Vorlagenargumenten, ein Freund aller BE-Klassen mit passenden Vorlagenargumenten ist.
Betrachten Sie die folgenden Beispiele, um die verschiedenen Typen weiter zu verdeutlichen von Freundschaftsbeziehungen:
templatestruct foo { template friend class bar; };
In diesem Fall ist bar ein Freund von foo, unabhängig von den Vorlagenargumenten von bar. Jede Spezialisierung von bar wäre ein Freund jeder Spezialisierung von foo.
templatestruct foo { friend class bar ; };
Hier ist bar nur ein Freund von foo, wenn sein Vorlagenargument mit dem von foo übereinstimmt. Also wäre nur bar
In Ihrem spezifischen Szenario wäre die Freundklasse bar
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