Wg te regułki:
Jeżeli klasa M deklaruje przyjazn z klasa K to oznacza, ze wszystkie funkcje składowe klasy K maja dostep do prywatnych lub chronionych skladnikow klasy M.
Tak więc mam kod:
#include <iostream>
using namespace std;
class figury;
class dane
{
int bokA,bokB, pole;
friend class figury;
};
class figury
{
public:
void obliczPoleKwadratu(int A)
{
dane kwadrat;
kwadrat.bokA = A;
kwadrat.pole = A*A;
cout << "Pole kwadratu dla podanych przez Ciebie parametrow to: " << kwadrat.pole << endl;
}
void obliczPoleProstokata(int A,int B)
{
dane prostokat;
prostokat.bokA = A;
prostokat.bokB = B;
prostokat.pole = A*B;
cout << "Pole prostokata dla podanych przez Ciebie parametrow to: " << prostokat.pole << endl;
}
};
int main()
{
figury poleKwadratu, poleProstokata;
int co;
cout << "[1] Pole Kwadratu, [2] Pole Prostokata" << endl;
cout << "Podaj co chcesz wyliczyc: ";
cin >> co;
switch(co)
{
case 1:
int bokA;
cout << "Podaj bok kwadratu: ";
cin >> bokA;
poleKwadratu.obliczPoleKwadratu(bokA);
break;
case 2:
int bokJeden, bokDwa;
cout << "Podaj krotszy bok prostokata: ";
cin >> bokJeden;
cout << "Podaj dluzszy bok prostokata: ";
cin >> bokDwa;
poleProstokata.obliczPoleProstokata(bokJeden,bokDwa);
break;
default:
cout << "Zla wartosc!" << endl;
}
}
i chcę teraz aby metoda: wypisz() odpowiadała za wypisywanie danych na ekran. Niestety za chiny nie wiem jak ją zaimplementować. Próbowałem już chyba wszystkiego.... nie wiem jak napisać tę metodę aby wypisywała na ekran kwadrat.pole oraz prostokat.pole...
(tutaj jej nie napisałem bo mi nie działała)..