Zadanie 1: Dodawanie obiektów różnych klas
1. Utwórz klasę Pierwsza zawierającą:
- pole prywatne wartoscA;
- konstuktor bezparametrowy z przypisaną warością równą 50 (w tym celu użyj listy inicjalizującej).
2. Utwórz klasę Druga zawierającą:
- pole prywatne wartoscB;
- konstuktor bezparametrowy z przypisaną warością równą 20 (nie używaj listy inicjalizującej).
3. Do klasy ( Pierwsza ) lub ( Druga ) lub ( Pierwsza i Druga ) dodaj odpowiednią metodę dodajAiB() umożliwiającą dodawanie
aktualnych wartości obiektów klasy Pierwsza oraz Druga.
Metoda dodajAiB() powinna być dwuargumentowa, określona poprzez typ klasy Pierwsza oraz typ klasy Druga. (Pamiętaj o wykorzystaniu słowa kluczowego friend).
4. W odpowiednim miejscu i w odpowiedni sposób zdefiniuj metodę dodajAiB().
5. W funkcji main():
- utwórz statycznie dwa obiekty (po jednym dla każdej z klasy);
- wywołaj metodę dodajAiB();
- wyświetl wynik dodawania obiektów za pomocą strumienia wyjściowego cout.
Zadanie 2: Dodawanie macierzy
1. Klasa Macierz zawiera:
część prywatną (private):
- statyczną tablicę dwuwymiarową o rozmiarze 3 x 3 przechowującą liczby zmiennoprzecinkowe;
- zmienne przechowujące rozmiar tablicy;
część publiczną (public):
- konstruktor- w którym wypełniamy tablicę zerami
- metodę wczytajDane() wczytującą z klawiatury dane którymi będzie wypełniona macierz
- metodę wypisz() wypisującą zawartość macierzy (każdy wiersz należy
wypisywać w oddzielnej linii, a poszczególne liczby w wierszu oddzielamy znakiem spacji lub tabulacji).
2. Napisz funkcję zaprzyjaźnioną (friend) dodajMacierze() dodającą dwa obiekty klasy Macierz i zwracającą jako wynik wskaźnik na nowy obiekt klasy Macierz.
Wynik dodawania macierzy przechowujemy w nowo utworzonym obiekcie.
3. W programie należy za pomocą operatora new utworzyć dwa obiekty i dla każdego z nich wywołać metodę wczytajDane() oraz wypisz().
4. Następnie wywołaj funkcję dodajMacierze() oraz metodę wypisz dla nowego obiektu zawierającego wynik dodawania macierzy.
Czy mógłby ktoś pomóc dokończyć te dwa zadania gdyż stanąłem w miejscu...
#include <iostream>
#include <cstdlib>
using namespace std;
class Macierz
{
public:
Macierz(int x, int y)
{
for(int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
tab[i][j] = 0;
}
}
}
void wczytajDane()
{
for(int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
cin >> tab[i][j];
}
}
}
void wypisz()
{
for(int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
cout << tab[i][j] << " ";
}
cout << endl;
}
}
friend void dodajMacierz();
private:
float tab[3][3];
int m;
int n;
};
void dodajMacierz()
{
}
int main()
{
return 0;
}
#include <iostream>
#include <cstdlib>
using namespace std;
class Pierwsza
{
public:
friend class Druga;
friend void dodajAiB();
private:
int wartoscA;
Pierwsza(int x) : wartoscA(x) {}
};
class Druga
{
public:
friend class Pierwsza;
friend void dodajAiB();
private:
int wartoscB;
Druga(int y)
{
wartoscB = y;
}
};
void dodajAiB(Pierwsza& wartoscA, Druga& wartoscB)
{
int suma;
suma = Pierwsza.wartoscA + Druga.wartoscB;
}
int main()
{
Pierwsza ob1 = Pierwsza(50);
Druga ob2 = Druga(20);
dodajAiB(ob1,ob2);
cout << "Wynikiem dodawania jest: " << suma << endl;
return 0;
}