Dana jest klasa Kont (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 (ilość operatorów: 10 )
– 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 !!!
class Kont{
private:
float*
m_Tab;
const unsigned int
m_uSize;
public:
// uzupełnij brakujące konstruktory Kont():m_uSize(10){
m_Tab = new float[m_uSize];
for( unsigned int i = 0; i < m_uSize; ++i ) m_Tab[i] = (float)(i);
}
~Kont(){
delete [] m_Tab;
}
// uzupelnij o brakujace skladowe funkcje operatorowe
};
void wyswietl(Kont& objA, Kont& objB, Kont& objC ){
//przeładowanie operatora strumienia wychodzącego << cout << objA << endl << objB << endl << objC << endl; cout << "---------------------------------------" << endl;
}
int main(){
Kont a, b(a), c(b);
cout << "1) " << endl; ::wyswietl( a, b, c ); K* newK = new K; //wyswietla tekst - > dziala operator new/delete klasy K
delete newK;
//wyswietla tekst - >przeładowanie operatora delete K
a += b;
// operator (Kont += Kont) cout << "2) " << endl; ::wyswietl( a, b, c ); c *= 3.1415f;
// operator ( Kont *= float) cout << "3) " << endl; ::wyswietl( a, b, c ); c *= b;
// operator ( Kont *= Kont&) cout << "4) " << endl; ::wyswietl( a, b, c ); if( a == b )
// przeładowanie operatora różności (bool) (Kont == Kont) cout << " A != B " << endl; else
cout << " A == B " << endl; cout << "5) " << endl; ::wyswietl( a, b, c );
c[4] = -100.0f;
// przeladowanie operatora tablicy: float& Kont[unsigned int]
cout << "6) " << endl; ::wyswietl( a, b, c );
a = --c;
// przeladowanie operatora predekrementacji cout << "7) " << endl; ::wyswietl( a, b, c );
c = b--;
// przeladowanie operatora postdekrementacji cout << "8) " << endl; ::wyswietl( a, b, c return 0;
};