Können wir Konstruktor einer Klasse als Freund deklarieren? Ich denke, das kann nicht sein. Aber ich habe irgendwo gelesen, dass es sein kann, aber ich konnte es nicht tun. Wenn ja, können Sie bitte einen Beispielcode angeben.Kann eine Konstruktorfunktion ein Freund in C++ sein?
Antwort
Ja, es kann:
class Y
{
public:
Y();
};
class X
{
private:
void foo() {}
friend Y::Y();
};
Y::Y()
{
X x; x.foo();
}
Per 11.3 Freunde [class.friend]
5) Wenn ein Freund Erklärung zu einem überlasteten Namen oder Operator bezieht, nur die Funktion angegeben Durch die Parametertypen wird ein Freund.
(emphasis Mine: A Elementfunktion einer Klasse X kann
[
class Y {
friend char* X::foo(int);
friend X::X(char); // constructors can be friends
friend X::~X(); // destructors can be friends
};
-End Beispiel Beispiele] ein Freund von einer Klasse sein, Y.)
+1 für das Ausgraben des Beispiels aus dem Standard :) – SteveLove
ist dies gültig 'Klasse Y { öffentlich: Freund Y (int); } ' Wenn ja, wie würdest du Y (int) definieren? – Shreyas
@Shreyas das würde keinen Sinn machen, warum sollte eine Klasse (oder ein Mitglied) ein Freund von sich selbst sein? –
- 1. JavaScript: Kann eine Konstruktorfunktion ein documentElement-Objekt erstellen?
- 2. Kann ein Freund von A <T> auch ein Freund von A <A<T>> sein?
- 3. Wie erstellt man eine Konstruktorfunktion?
- 4. Ich kann eine Eigenschaft in einer Konstruktorfunktion nicht ändern
- 5. Ärger mit Freund in C++
- 6. Freund Klassen in Objective-C
- 7. Unbenutzte Freund Klasse in C++
- 8. Wrapping javascript Konstruktorfunktion in eine andere Funktion
- 9. Wie erhalte ich eine Konstruktorfunktion, um von einer Konstruktorfunktion in Javascript zu erben?
- 10. C++ Freund Konstruktor
- 11. C# interne VS VBNET Freund
- 12. Sieht ein Freund Basisklassen?
- 13. Was ist ein "Freund" Schlüsselwort in C Sharp?
- 14. Wie kann ich auf ein Konstruktormember innerhalb einer Konstruktorfunktion zugreifen?
- 15. C++ Klasse mit objective-c Freund
- 16. Kann ein offener Typ eine Struktur sein?
- 17. Ist es möglich, eine "Freund-Klasse" in C++ zu erstellen?
- 18. Was ist das C# -Aquivalent von Freund?
- 19. Warum kann eine lokale Variable in C# nicht flüchtig sein?
- 20. Verweis auf die Konstruktorfunktion
- 21. Freund eine Vorlage Spezialisierung ohne <>
- 22. Kurzschrift für Konstruktorfunktion
- 23. Kann ein Objekt falsch sein?
- 24. C++ überladen ein Freund Klasse Funktionsparameter mit einem Argument
- 25. Ein Mitglied zu einem Freund machen
- 26. Freund Funktion in PHP?
- 27. eine Klasse-Schlüssel muss erklärt werden, wenn ein Freund
- 28. Können ein Eigenschaftenname und ein Methodenname in C# identisch sein?
- 29. Freund Funktion - kann nicht auf private Feld zugreifen C++
- 30. JSLint: Unerwartetes Dangling in einer Konstruktorfunktion. Warum?
Warum erklärst du nicht die ganze Klasse als Freund? – wilx
poste deinen Code. –
@KarolyHorvath: Das ist im Allgemeinen nützlich, aber was würdest du hier zeigen? 'Freund;'? Das fügt dieser Frage nichts hinzu. –
MSalters