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 (10 operatorów)
FUNKCJE OPERATOROWE O ILE TO MOŻLIWE JAKO FUNKCJE SKAADOWE KLASY z
DEFINICJ NA ZEWNTRZ KLASY & K :: operator+( & ) - inne będą traktowane jako błąd !!!
class K{
private:
double** m_Tab2D;
const unsigned int m_uSize;
public:
// uzupełnij brakujące konstruktory
K():m_uSize(5){
m_Tab2D = new double*[m_uSize];
for( unsigned int i = 0; i < m_uSize; ++i ){
m_Tab2D[i] = new double[m_uSize];
for( unsigned int k = 0; k < m_uSize; ++k )
m_Tab2D[i][k] = 1.0f;
}
}
~K(){
for( unsigned int i = 0; i < m_uSize; ++i )
delete [] m_Tab2D[i];
delete [] m_Tab2D;
}
//void wyswietl( ){
// for( unsigned int j = 0; j < m_uSize; ++j){
// for( unsigned int i = 0; i < m_uSize; ++i )
// cout << m_Tab2D[j][i] << " " ;
// cout << endl;
// }
// cout << "==========================" << endl;
//}
// uzupelnij o brakujace skladowe funkcje operatorowe
};
//===========================================================
void wyswietl ( K& objA, K& objB, K& objC ){
//przeładowanie operatora strumienia wychodzącego <<
cout << objA << endl << objB << endl << objC << endl;
cout << "---------------------------------------" << endl;
}
//===========================================================
int main(){
K a, b(a), c(b);
cout << "1) " << endl; ::wyswietl( a, b, c );
K* newK = new K[6]; //wyswietla tekst - > dziala operator new/delete klasy K
delete [] newK; //wyswietla tekst - >przeładowanie operatora delete K
a -= b; // operator (K -= K)
cout << "2) " << endl; ::wyswietl( a, b, c );
c /= -9.5; // operator ( K /= double )
cout << "3) " << endl; ::wyswietl( a, b, c );
c *= b; // operator ( K *= K )
cout << "4) " << endl; ::wyswietl( a, b, c );
if( c != a ) // przeładowanie operatora różności (bool) ( K == K )
cout << "C != A " << endl;
else
cout << " C == A " << endl;
cout << "5) " << endl; ::wyswietl( a, b, c );
c(3,4) = -0.74; // przeladowanie operatora tablicy: float& K(const unsigned int, const unsigned int)
cout << "6) " << endl; ::wyswietl( a, b, c );
c *= ---a ; // przeladowanie operatora predekrementacji - -K
cout << "7) " << endl; ::wyswietl( a, b, c );
a *= b++; // przeladowanie operatora postdekrementacji K++
cout << "8) " << endl; ::wyswietl( a, b, c );
return 0;
};
Wyszukiwarka
Podobne podstrony:
zajecia 07 grupa 017zajecia 07 grupa 027zajecia 07 grupa 04dzajecia nr 8 grupa 03zajecia nr 5 grupa 04zajecia 10 grupa 04xzajecia 11 grupa 03czajecia 06 grupa 04szajecia 10 grupa 01xzajecia nr 5 grupa 03zajecia 06 grupa 02szajecia 11 grupa 022zajecia nr 6 grupa 04zajecia 09 grupa 01zzajecia 08 grupa 03fzajecia 12 grupa 013zajecia 06 grupa 03swięcej podobnych podstron