Heute habe ich Zweifel bezüglich der Funktion von Freunden. Können zwei Klassen dieselbe Friend-Funktion haben? Sagen Sie Beispiel friend void f1();
deklariert in Klasse A und Klasse B. Ist das möglich? Wenn ja, kann eine Funktion f1() auf die Mitglieder zweier Klassen zugreifen?Können 2 Klassen eine Freundesfunktion teilen?
Antwort
Es gibt keine Einschränkung auf welche Funktion friends
's von class
' s sein kann oder kann, also ja, es gibt kein Problem damit.
Nun, Sie müssen in der Lage sein, die Funktion zu benennen, aber das ist eine natürliche Einschränkung. Z.B. 'struct {statische Leere foo(); }; 'oder funktioniert in anonymen Namespaces in anderen Übersetzungseinheiten. – MSalters
Ein Beispiel wird erklärt, dies am besten:
class B; //defined later
void add(A,B);
class A{
private:
int a;
public:
A(){
a = 100;
}
friend void add(A,B);
};
class B{
private:
int b;
public:
B(){
b = 100;
}
friend void add(A,B);
};
void add (A Aobj, B Bobj){
cout << (Aobj.a + Bobj.b);
}
main(){
A A1;
B B1;
add(A1,B1);
return 0;
}
hoffe, das hilft!
Vielen Dank Mann Ihr Beispiel war sehr nett und leicht zu verstehen – user2236974
Gern geschehen! – iluvthee07
Korrektur der obigen Code
#include<iostream>
using namespace std;
class B; //defined later
class A; //correction (A also need be specified)
void add(A,B);
class A{
private:
int a;
public:
A(){
a = 100;
}
friend void add(A,B);
};
class B{
private:
int b;
public:
B(){
b = 100;
}
friend void add(A,B);
};
void add (A Aobj, B Bobj){
cout << (Aobj.a + Bobj.b);
}
main(){
A A1;
B B1;
add(A1,B1);
return 0;
}
#include<iostream>
using namespace std;
class first
{
friend void getdata(first object1, int i);
};
class second
{
friend void getdata(second object2, int j);
};
getdata(first object1, int i, second object2, int j)
{
cout<<i+j;
}
main()
{
first object1;
second object2;
getdata(object1, 5, object2, 7);
}
- 1. Ist der Zugriffsbezeichner für eine Freundesfunktion wichtig?
- 2. Eigenschaften unter mehreren Klassen teilen
- 3. Eine Zeichenfolge in 2 Strings teilen
- 4. Können 2 CSS-Klassen das gleiche Skript aktivieren?
- 5. Einen Threadpool zwischen zwei Klassen teilen
- 6. WatchOS 2 - iOS UserDefaults teilen
- 7. teilen Variable zwischen Klassen und Methoden
- 8. JavaFX 2 und CSS-Klassen
- 9. Teilen Ansichten zwischen 2 devise Modelle
- 10. Können mehrere WCF-Dienste eine gemeinsame BaseAddress teilen?
- 11. CSS3 - „Anschluss“ 2-Klassen-Animation
- 12. Können zwei verschiedene Clients Cookies teilen?
- 13. Eine Datei inkrementell teilen
- 14. teilen eine Objekt-Anwendung weit
- 15. Teilen mehrerer Projekte mit spielen! 2 (Scala)
- 16. Resharper Ruleset, können wir sie teilen?
- 17. C++ - 2 Klassen 1 Datei
- 18. Eine ".txt" -Datei teilen
- 19. Begrenzen Sie, welche Klassen eine andere Klasse erweitern können
- 20. Können in Java anonyme Klassen eine andere Klasse erweitern?
- 21. Objekt zwischen 2 untergeordneten Komponenten teilen
- 22. Dynamisch definierte Klassen, die Daten falsch teilen - Fehler oder Codierungsfehler?
- 23. Teilen von Daten in zwei Klassen visuell in Matlab
- 24. Jersey 2 + HK2 - automatisches Binden von Klassen
- 25. ASP.NET 2 Projekte teilen die gleichen Dateien
- 26. zwei Klassen, eine Seite, 2. Klasse stirbt vor Instanziierung
- 27. Teilen Sie eine Funktion zwischen mehreren Ansichten auf ionic 2 angularjs 2
- 28. Wie kann ich eine Angular 2-Komponente zwischen mehreren Angular 2-Projekten teilen?
- 29. Warum können statische Klassen keine Destruktoren haben?
- 30. können sich zwei Klassen mit C++ sehen?
Ja, es ist möglich. Ja, 'f1()' hätte Zugriff auf Mitglieder beider Klassen. – juanchopanza
Haben Sie versucht, ein einfaches Beispiel zu erstellen? Dies scheint so zu sein, als wäre es leicht zu testen. – Max
Was lässt Sie denken, dass dies nicht möglich wäre? – stijn