Program do tematu Funkcje zaprzyjaźnione - folder Friend1
#include <conio.h> //do getch()
#include <stdio.h> //do printf()
#include <string.h> //do strcpy()
class klasa1 //definiujemy prostą klasę
{
friend void przyjaciel1(klasa1 ob1);
friend void przyjaciel2(klasa1 ob1); //Deklaracje funkcji zaprzyjaźnionych.
private: //składniki prywatne
int liczba1, liczba2, liczba3;
int suma, roznica; //cechy - suma i różnica trzech liczb
char nazwa1[20]; //cecha - nazwa
public: //składniki publiczne
void wpisz(int l1, int l2, int l3, char *n1)
{ liczba1=l1; liczba2=l2; liczba3=l3; strcpy(nazwa1,n1); }
//metoda wpisze wartości do cech
void dodaj() { suma=liczba1+liczba2+liczba3; }
//ta metoda doda trzy liczby i wstawi tę wartość do cechy suma
void odejmij() { roznica=liczba1-liczba2-liczba3; }
//metoda odejmie trzy liczby i wstawi tę wartość do cechy różnica
void wypisz(); //ta metoda wypisze dane o obiekcie - definicja poza klasą
}; //koniec definicji klasy
void klasa1::wypisz() //definicja metody wypisz
{ printf("\nTo ja, metoda wypisz..."); printf("\nNazwa: %20s", nazwa1);
printf("\nSuma = %20d",suma); printf("\nRoznica = %17d",roznica); } //koniec definicji metody wypisz
void przyjaciel1(klasa1 ob1)
//Tu jest bardzo ciekawie... Jest to definicja funkcji zaprzyjaźnionej z klasą klasa1. Funkcja //nazywa się przyjaciel1 i nic nie zwraca. Jako argument otrzymuje obiekt klasy klasa1.
{ ob1.suma=ob1.liczba1+ob1.liczba2+ob1.liczba3;
printf("\n\n\n\tTo ja, przyjaciel1..."); //krótki komunikat
printf("\n\tNazwa: %14s",ob1.nazwa1); printf("\n\tSuma = %14d",ob1.suma); }
void przyjaciel2(klasa1 ob1) //Definicja drugiej funkcji zaprzyjaźnionej {ob1.roznica=ob1.liczba1-ob1.liczba2-ob1.liczba3;
printf("\n\n\n\t\tTo ja, przyjaciel2..."); printf("\n\t\tNazwa: %14s",ob1.nazwa1);
printf("\n\t\tRoznica = %11d",ob1.roznica);
} //koniec definicji funkcji przyjaciel2
main()
{ klasa1 obiekt; //deklarujemy obiekt klasy klasa1 o nazwie obiekt
obiekt.wpisz(20,10,30,"OBIEKCIK");
obiekt.dodaj(); obiekt.odejmij(); obiekt1.wypisz(); //wywołania metod przyjaciel(obiekt); przyjaciel2(obiekt);
//Wywołujemy funkcje zaprzyjaźnione z klasą. Jako argument wysyłamy nasz obiekt.
getch();
} //koniec main()