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
//-----------------------------------------------------------------------------
};
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;
};