Funkcje zaprzyjaźnione
Ćwiczenie 6
Uzupełnić klasę wektor3w o:
funkcję rowny sprawdzającą, czy dwa wektory są sobie równe
funkcję dlugmax wybierającą dłuższy z dwóch wektorów
funkcję umożliwiającą dodawanie wektorów
funkcję obliczającą iloczyn skalarny dwóch wektorów
W każdym przypadku należy rozważyć sposób implementacji powyższych funkcji:
funkcja składowej klasy vs. funkcja zaprzyjaźniona
sposób przekazywania argumentów do funkcji (wskaźnik, wartość, czy referencja)
sposób przekazywania obliczanych wartości funkcji (wskaźnik, wartość, czy referencja)
Zademonstrować możliwości klasy i napisanych funkcji w programie testującym:
odpowiednio podzielić kod na pliki źródłowe i nagłówkowe
wykorzystać program make wraz z odpowiednim plikiem makefile
Implementacja
funkcją zaprzyjaźnioną nazywamy funkcję, która nie jest składową klasy, a mimo to ma dostęp do składowych prywatnych
taką „deklarację przyjaźni” realizuje się z użyciem słowa kluczowego friend
Możliwe są trzy rodzaje takiej deklaracji:
funkcja niezależna fun jest zaprzyjaźniona z klasą A
class A{
/*...*/
friend ... fun (...);
};
metoda fun z klasy B jest zaprzyjaźniona z klasą A
class A{
/*...*/
friend ... B::fun (...);
};
wszystkie funkcje składowe klasy B są zaprzyjaźnione z klasą A
class A{
/*...*/
friend ... fun (...);
};
IV/*
Poprzedni slajd
Cofnij do pierwszego slajdu
Podgląd wersji graficznej