Dziś mam wątpliwości dotyczące funkcji znajomego. Czy dwie klasy mają tę samą funkcję znajomego? Powiedz przykład friend void f1();
zadeklarowana w klasie A i klasie B. Czy to możliwe? Jeśli tak, czy funkcja f1() może uzyskać dostęp do elementów dwóch klas?Czy 2 klasy mogą korzystać z funkcji znajomego?
Odpowiedz
Nie ma ograniczeń co do funkcji, które mogą lub nie mogą być friends
's z class
, więc tak nie ma problemu z tym.
Cóż, musisz być w stanie nazwać funkcję, ale jest to naturalne ograniczenie. Na przykład. 'struct {static void foo(); }; 'lub funkcje w anonimowych przestrzeniach nazw w innych jednostkach tłumaczeniowych. – MSalters
Przykładem wyjaśni to najlepiej:
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;
}
Nadzieja to pomaga!
Bardzo dziękuję, dziękuję bardzo, mój przykład był bardzo miły i łatwy do zrozumienia. – user2236974
Nie ma za co! – iluvthee07
korekta do powyższego kodu
#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. Czy funkcje pomocnika CodeIgniter mogą korzystać z funkcji bazy danych?
- 2. Jak korzystać z funkcji klasy w C++?
- 3. Czy aplikacje HTA mogą korzystać z HTMLed IndexedDB?
- 4. Jak korzystać z klasy .clearfix?
- 5. Argument dla znajomego funkcjonuje
- 6. Jak korzystać z funkcji Flowable w aplikacji RxJava 2?
- 7. C++ czy kompilatory mogą wstawiać wskaźnik funkcji?
- 8. Jak korzystać z AutoValue z Retrofit 2?
- 9. Dokonywanie parametru szablonu znajomego?
- 10. Jak korzystać z klasy XmlReader?
- 11. Angular 2, jak korzystać z setTimeout?
- 12. Czy mogą istnieć samodzielne funkcje w języku C# bez klasy?
- 13. Koncepcja C++ z dostępem podobnym do znajomego
- 14. Jak korzystać z pdfmake w ionic 2?
- 15. Jak korzystać z funkcji numpy.append
- 16. Jak korzystać z funkcji Intent.ATTACH_DATA
- 17. Jak korzystać z funkcji cgsize?
- 18. Jak korzystać z funkcji strcasestr()?
- 19. Jak korzystać z funkcji Unlink()
- 20. Jak korzystać z funkcji sprof?
- 21. Jak korzystać z funkcji srand() z time.h?
- 22. Wywołanie niewyspecjalizowanej funkcji klasy szablonów z wyspecjalizowanej funkcji klasy szablonów
- 23. Odpowiednik PHP znajomego lub wewnętrznego
- 24. Jak korzystać z funkcji Include() po funkcji OfType()?
- 25. Czy można zastąpić konstruktor klasy i korzystać z dziedziczenia?
- 26. Jak korzystać z funkcji agregacji w R
- 27. Ruby: Czy parametry funkcji lambda mogą mieć wartości domyślne?
- 28. Jak korzystać z funkcji getElementsByClassName w funkcji javascript?
- 29. Czy mogę korzystać z funkcji SQL w NHibernate QueryOver?
- 30. Czy mogę korzystać z informacji indeksu w funkcji mapy?
Tak jest to możliwe. Tak, 'f1()' miałaby dostęp do członków obu klas. – juanchopanza
Czy próbowałeś skompilować prosty przykład? Wydaje się, że byłoby to łatwe do przetestowania. – Max
Dlaczego uważasz, że to nie jest możliwe? – stijn