Dana jest klasa K (strona.1) oraz funkcja main( ) (strona.2):

– uzupełnij brakujące miejsca w programie

– uzupełnij program o brakujące funkcje operatorowe tak aby kod funkcji main() mógł się wykonać poprawie zgodnie z zasadą działania zastosowanych operatorów

– FUNKCJE OPERATOROWE O ILE TO MOŻLIWE JAKO FUNKCJE SKŁADOWE KLASY z DEFINICJĄ NA ZEWNĄTRZ KLASY → … K :: operator+( … ) - inne będą traktowane jako błąd !!!

#define SIZE

5

#define TYP

float

class K{

private:

TYP**

m_Tab2D;

public:

//-----------------------------------------------------------------------------

// uzupełnij brakujące konstruktory K( ){

m_Tab2D = new TYP*[ SIZE ];

for( unsigned int i = 0; i < SIZE; ++i ){

m_Tab2D[i] = new TYP[ SIZE ];

for( unsigned int k = 0; k < SIZE; ++k ) m_Tab2D[i][k] = (TYP )1.0f;

}

}

//-----------------------------------------------------------------------------

~ K(){

for( unsigned int i = 0; i < SIZE; ++i ) delete [] m_Tab2D[i];

delete [] m_Tab2D;

}

//-----------------------------------------------------------------------------

K( const K& myK ){

m_Tab2D = new TYP*[ SIZE ];

for( unsigned int i = 0; i < SIZE; ++i ){

m_Tab2D[i] = new TYP[ SIZE ];

for( unsigned int k = 0; k < SIZE; ++k ) m_Tab2D[i][k] = myK.m_Tab2D[i][k];

}

}

//-----------------------------------------------------------------------------

void wyswietl( ){

for( unsigned int j = 0; j < SIZE; ++j){

for( unsigned int i = 0; i < SIZE; ++i ) std::cout << m_Tab2D[j][i] << " " ; std::cout << std::endl;

}

std::cout << "==========================" << std::endl;

}

//-----------------------------------------------------------------------------

// uzupełnij o brakujące deklaracje składowych funkcji operatorowych

//-----------------------------------------------------------------------------

};

int main(){

K

a, b(a), c(b);

double

dZ = -1.0;

a. wyswietl();

b. wyswietl(); c. wyswietl(); a = b - c;

// nowe operatory +2 (K = K) (K = K - K) a. wyswietl();

b. wyswietl(); c. wyswietl(); c = b * 5;

// nowe operatory +1 (K = K * int) a. wyswietl();

b. wyswietl(); c. wyswietl(); c = c * (-0.75);

// nowe operatory +1 (K = K * double) a. wyswietl();

b. wyswietl(); c. wyswietl(); a = 1.0 / c;

// nowe operatory +1 ( K = ( double / K) ) a. wyswietl();

b. wyswietl(); c. wyswietl(); b = dZ;

// nowe operatory +1 ( K = double ) a. wyswietl();

// wpisz do tablicy obiektu c wartości ze zmiennej dZ

b. wyswietl(); c. wyswietl(); b = (-b) - a;

// nowe operatory +1 ( K = -K ) a. wyswietl();

b. wyswietl(); c. wyswietl(); double suma_elementow = (double)(b);

// nowe operatory +1 ( double = K )

// suma elementów znaczy zsumować wszystkie elementy macierzy std::cout

<< "Suma wszystkich elementow tablicy2D w w obiekcie b = "

<< suma_elementow << std::endl; return 0;

};