Ist es auch wichtig, wo in der Klasse Sie den Freund erklären? Ist es wichtig, ob Sie eine Freundesklasse oder eine Freundesfunktion hinzufügen?Ändert das Hinzufügen eines Freundes zu einer Klasse in C++ das Speicherlayout?
7
A
Antwort
18
Nein, tut es nicht. Es ist eine reine Kompilierungszeit: ähnlich den Zugriffsmodifizierern.
Trotz der Tatsache, dass Sie die Erklärung innerhalb der Klasse schreiben, die Sie nicht wirklich einen Freund zu einer Klasse hinzuzufügen. Sie würden im Grunde etwas anderes als ein Freund der Klasse deklarieren und einfach erlauben, auf die privaten Mitglieder der Klasse zuzugreifen, als wären sie öffentlich.
1
Wie bereits erwähnt, ist es ein reiner Kompilierzeitmechanismus.
Beachten Sie, dass der C++ - Standard technisch kein Speicherlayout für Nicht-POD-Typen definiert. –