zajecia 07 grupa 04d


Dana jest klasa Zbior (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 SKAADOWE KLASY z
DEFINICJ NA ZEWNTRZ KLASY & K :: operator+( & ) - inne będą traktowane jako błąd !!!
//=======================================
#define MOJTYP double
#define DANE_SIZE 10
typedef unsigned short int USINT
//=======================================
class Zbior{
private:
MOJTYP* m_Tab1D;
USINT m_Dane[ DANE_SIZE ];
const unsigned int m_uSize;
private:
void Wypelnij( MOJTYP* pTab, unsigned int a_uSize, MOJTYP var ){
for( unsigned int i = 0; i < a_uSize; ++i )
pTab[i] = var;
}
public:
// uzupełnij brakujące konstruktory
Zbior():m_uSize(5){
m_Tab1D = new MOJTYP[m_uSize];
this->wypelnij( m_Tab1D, m_uSize, 2.2 );
for( unsigned int i = 0; i < DANE_SIZE; ++i )
m_Dane[i] = (USINT)(1);
}
~Zbior(){
delete [] m_Tab1D;
}
void wyswietl( ){
for( unsigned int i = 0; i < m_uSize; ++i )
cout << m_Tab1D[i] << " " ;
cout << endl << "--------------------------" << endl;
for( unsigned int i = 0; i < DANE_SIZE; ++i )
cout << m_Dane[i] << " " ;
cout << endl << "==========================" << endl;
}
// uzupelnij o brakujace skladowe funkcje operatorowe
};
//=======================================
// TUTAJ WSTAW DEFINICJE FUKCJI OPERATOROWYCH
//=======================================
//===========================================================
void wyswietl ( const Zbior& objA, const Zbior& objB, const Zbior& objC ){
//przeładowanie operatora strumienia wychodzącego <<
cout << objA << endl << objB << endl << objC << endl;
cout << "---------------------------------------" << endl;
}
//===========================================================
int main(){
Zbior a;
Zbior b(a);
Zbior c(b);
MOJTYP dZ = -1.0;
unsigned int var = 3;
cout << "1) " << endl; ::wyswietl( a, b, c );
Zbior* newZbior = new Zbior[var]; //wyswietla tekst - > dziala operator new/delete klasy Zbior
delete [] newZbior ; //wyswietla tekst - >przeładowanie operatora delete Zbior
a += -b; // operator ( Zbior += Zbior)
cout << "2) " << endl; ::wyswietl( a, b, c );
c /= dZ; // operator ( Zbior /= MOJTYP )
cout << "3) " << endl; ::wyswietl( a, b, c );
c *= b; // operator ( Zbior *= Zbior )
cout << "4) " << endl; ::wyswietl( a, b, c );
if( c > a ){ // przeładowanie operatora różności (bool) ( Zbior_1 > Zbior_2 )
// jeżeli suma wszystkich elementow tablic Zbor_1
// jest wieksza niż suma wszystkich elementow tablic Zbior_2
cout << "C > A " << endl;
}
else
cout << " C <= A " << endl;
cout << "5) " << endl; ::wyswietl( a, b, c );
c[ val ] = -dZ; // przeladowanie operatora tablicy: (MOJTYP& K(const unsigned int)
cout << "6) " << endl; ::wyswietl( a, b, c );
c[ 4564121 ] = dZ;
cout << "7) " << endl; ::wyswietl( a, b, c );
c += (--a) ; // przeladowanie operatora predekrementacji (- - Zbior)
cout << "8) " << endl; ::wyswietl( a, b, c );
a += b++; // przeladowanie operatora postdekrementacji (Zbior++)
cout << "9) " << endl; ::wyswietl( a, b, c )
return 0;
};


Wyszukiwarka

Podobne podstrony:
zajecia 07 grupa 017
zajecia 07 grupa 03d
zajecia 07 grupa 027
zajecia nr 8 grupa 03
zajecia nr 5 grupa 04
zajecia 10 grupa 04x
zajecia 11 grupa 03c
zajecia 06 grupa 04s
zajecia 10 grupa 01x
zajecia nr 5 grupa 03
zajecia 06 grupa 02s
zajecia 11 grupa 022
zajecia nr 6 grupa 04
zajecia 09 grupa 01z
zajecia 08 grupa 03f
zajecia 12 grupa 013
zajecia 06 grupa 03s

więcej podobnych podstron