Dana jest klasa Zbior (strona.1) oraz funkcja main( ) (strona.2):
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 SKAADOWE KLASY z
DEFINICJ NA ZEWNTRZ KLASY & K :: operator+( & ) - inne będą traktowane jako błąd !!!
//=======================================
#define MOJTYP double
#define SIZE 10
#define USINT unsigned short int
//=======================================
class Zbior{
private:
//---------------------------------------------------------------
MOJTYP* m_Tab1D;
USINT m_Dane[ SIZE ];
//---------------------------------------------------------------
private:
//---------------------------------------------------------------
void Wypelnij( MOJTYP* pTab, MOJTYP var ){
for( unsigned int i = 0; i < SIZE; ++i )
pTab[i] = var;
}
//---------------------------------------------------------------
public:
// uzupełnij brakujące konstruktory
Zbior(){
m_Tab1D = new MOJTYP[ SIZE ];
this->Wypelnij( m_Tab1D, 1.0 );
for( unsigned int i = 0; i < SIZE; ++i )
m_Dane[i] = (USINT)(2);
}
//---------------------------------------------------------------
Zbior( const Zbior& myZbior ){
m_Tab1D = new MOJTYP[ SIZE ];
for( unsigned int i = 0; i < SIZE; ++i ){
m_Tab1D[i] = myZbior.m_Tab1D[i];
m_Dane[i] = myZbior.m_Dane[i];
}
}
//---------------------------------------------------------------
~Zbior(){
delete [] m_Tab1D;
}
//---------------------------------------------------------------
void wyswietl( ){
for( unsigned int i = 0; i < SIZE; ++i )
cout << m_Tab1D[i] << " " ;
cout << endl << "--------------------------" << endl;
for( unsigned int i = 0; i < SIZE; ++i )
cout << m_Dane[i] << " " ;
cout << endl << "==========================" << endl;
}
// uzupełnij o brakujące składowe klasy
// uzupełnij o brakujące deklaracje funkcji operatorowych
//---------------------------------------------------------------
};
//=======================================
// TUTAJ WSTAW DEFINICJE FUKCJI OPERATOROWYCH
//=======================================
int main(){
Zbior a;
Zbior b(a);
Zbior c(b);
MOJTYP dZ = -1.0;
unsigned int var = 6;
a.wyswietl();
b.wyswietl();
c.wyswietl();
a = b + c; // nowe operatory +2 (Zbior = Zbior)(Zbior = Zbior + Zbior)
a.wyswietl();
b.wyswietl();
c.wyswietl();
c = b * var; // nowe operatory +1 (Zbior = Zbior * unsigned int)
a.wyswietl();
b.wyswietl();
c.wyswietl();
c = c / ( -0.75 ); // nowe operatory +1 (Zbior = Zbior / double)
a.wyswietl();
b.wyswietl();
c.wyswietl();
a = 1.0 / c; // nowe operatory +1 ( Zbior = ( double / Zbior ) )
a.wyswietl();
b.wyswietl();
c.wyswietl();
b = dZ; // nowe operatory +1 ( Zbior = MOJTYP )
a.wyswietl(); // wpisz do tablicy obiektu c wartości ze zmiennej dZ
b.wyswietl();
c.wyswietl();
c = -b + a; // nowe operatory +1 ( Zbior = -Zbior )
a.wyswietl();
b.wyswietl();
c.wyswietl();
float suma_elementow = (float)(c); // nowe operatory +1 ( float = Zbior )
// suma elementów m_Tab1D !!!
std::cout << "Suma wszystkich elementow tablicy2D w w obiekcie c = "
<< suma_elementow << std::endl;
return 0;
};
Wyszukiwarka
Podobne podstrony:
zajecia nr 5 grupa 04zajecia nr 8 grupa 04zajecia nr 8 grupa 03zajecia nr 5 grupa 03grupa 01 zajecia nr 44BDiA Projektowanie Semestr 6 Zajecia nr 04 Roboty ziemnegrupa 03 zajecia nr 33grupa 02 zajecia nr 33grupa 02 zajecia nr 1zajecia nr 9BDiA Projektowanie Semestr 6 Zajecia nr 05 Trasowanie rowowZajęcia nr 1zadanie zajęcia nr 4zajecia nr 3zajecia 10 grupa 04xzajecia 11 grupa 03czajecia 06 grupa 04sKartkowka nr 1 Zadania 04 XI 2009więcej podobnych podstron