Dana jest klasa Macierz, która zawiera w sobie tablice 2D o rozmiarze podanym w parametrze konstruktora
Uzupełnić program o brakujące elementy:
!!!
NIE
MODYFIKOWAĆ ZAWARTOŚCI FUNKCJI main( ) i wyswietlInfoMacierz( ) !!!
Temat 4
KONSTRUKTORY i DESTRUKTOR
void wyswietlInfoMacierz( ){
// wyswietla ilosc obiektow aktywnych Macierzy, które zostaly stworzone i istnieja nadal (nie zostaly skasowane)
cout << ”Aktywnych obiektow Macierz = ” << Macierz::ileAktywnychObiektowMacierz() << endl;
// wyswietla ilosc obiektow Macierz, które kiedykolwiek zostaly stworzone (mogą już nie istniec)
cout << ”Ilosc dotychczas stworzonych obiektow Macierz =” << Macierz::ileDotychczasStworzonych() << endl;
}
int main(){
const unsigned short int uSize = 5;
wyswietlInfoMacierz( );
Macierz
mac1( uSize, uSize
);
Macierz
mac2( mac1
);
Macierz
mac3( &mac2
);
wyswietlInfoMacierz( );
Macierz*
pmac1 = new Macierz(uSize, uSize);
// tworzy obiekt macierz zawierający mac o rozm uSize x uSize
Macierz*
pmac2 = mac1.kopia( );
// zawraca kopie idealną macierzy mac1
wyswietlInfoMacierz( );
// funkcja dodaje do macierzy mac1 zawartosc macierzy pmac1
mac1.dodaj(pmac1);
// mac1[i][j] += (*pmac)[i][j] → element po elemencie
mac2.dodaj(*pmac1);
// jw. *pmac1 przez referencje
wyswietlInfoMacierz( );
// funkcja zwraca nowa macierz bedaca suma mac1 i mac2 (co do zawartosci
Macierz mac4 = mac1.suma( &mac2 );
// mac4[i][j] = mac1[i][j] + mac2[i][j];
wyswietlInfoMacierz( );
pmac1->zmien( 1, 2 ) = ((float)uSize)/3.0f;
// zmienia zawartość elementu macierzy (1, 2) na ...
pmac1->wyswietl();
// wyswietla zawartośc macierzy na ekranie, w formacie:
mac4.wyswietl();
// mac[0][0] = wartość1
// mac[0][1] = wartość2
// mac[i][j] ...
wyswietlInfoMacierz( );
delete pmac1;
// wywolywany jest destruktor obiektu pmac1;
wyswietlInfoMacierz( );
delete pmac2;
wyswietlInfoMacierz( );
return 0;
}
}