za 2 godziny...
czeka mnie cos takiego... :D
#include
#include
#include
using namespace std;
class Pojazd {
protected:
short _liczbaKol;
public:
Pojazd( short liczbaKol = 0 ) : _liczbaKol(liczbaKol) {}
Pojazd( const Pojazd & newbie ) :
_liczbaKol ( newbie._liczbaKol ) {}
virtual ~Pojazd() {}
const short liczbaKol() const { return _liczbaKol; }
short& liczbaKol() { return _liczbaKol; }
virtual void opisz() const = 0;
};
class Rower : public Pojazd {
private:
string _kolor;
public:
Rower( string kolor = "" ) : Pojazd( 2 ), _kolor( kolor ) {}
Rower( const Rower & newbie ) : Pojazd( 2 ), _kolor( newbie._kolor ) {}
const string kolor() const { return _kolor; }
string& kolor() { return _kolor; }
void opisz() const {
cout << "\nrower : " << _kolor << endl;
}
};
class Samochod : public Pojazd {
private:
double _pojemnosc;
short _rozmiar;
Rower *_tab;
public:
Samochod( double pojemnosc = 0.0 ) :
Pojazd( 4 ),
_pojemnosc( pojemnosc ),
_rozmiar( 0 ),
_tab( 0 ) {}
Samochod( short liczbaKol, double pojemnosc = 0.0 ) :
Pojazd( liczbaKol ),
_pojemnosc( pojemnosc ),
_rozmiar( 0 ),
_tab( 0 ) {}
Samochod( const Samochod & newbie ) :
Pojazd( newbie ),
_pojemnosc( newbie._pojemnosc ),
_rozmiar( newbie._rozmiar ),
_tab( new Rower [ _rozmiar ] )
{
for ( short i = 0; i < _rozmiar; ++i )
_tab[i] = newbie._tab[i];
}
~Samochod() { delete [] _tab; }
const double pojemnosc() const { return _pojemnosc; }
double& pojemnosc() { return _pojemnosc; }
void opisz() const {
cout << "Sam : " << _liczbaKol << " / " << _pojemnosc << endl;
if ( _rozmiar ){
cout << "Ilosc wiezionych rowerow: " << _rozmiar;
for ( short i = 0; i < _rozmiar; ++i )
cout << '\n' << i+1 << ". Rower kol: " << _tab[i].kolor();
}
cout << "\n\n";
}
Samochod& operator += ( const Rower & R_newbie );
Samochod& operator = ( const Samochod & S_newbie );
};
Samochod& Samochod::operator += ( const Rower & R_newbie ) {
Rower* tmp = _tab;
_rozmiar++;
_tab = new Rower [ _rozmiar ];
for ( short i = 0; i < _rozmiar - 1; ++i)
_tab[i] = tmp[i];
_tab[ _rozmiar - 1 ] = R_newbie;
delete [] tmp;
return *this;
}
Samochod& Samochod::operator = ( const Samochod& S_newbie ){
_liczbaKol = S_newbie._liczbaKol;
_pojemnosc = S_newbie._pojemnosc;
_rozmiar = S_newbie._rozmiar;
if ( _rozmiar != 0 ){
delete [] _tab;
_tab = new Rower [ _rozmiar ];
for ( short i = 0; i < _rozmiar ; ++i)
_tab[i] = S_newbie._tab[i];
}
return *this;
}
void wyswietl( const Pojazd * newbie ) {
newbie->opisz();
}
int main(){
try{
// kod testujacy mgr inz. Juliusz Mikoda
Rower r1, r2("zielony");
Rower r3(r2);
r1 = r2;
r1.kolor() = "niebieski";
r2.kolor() = "czerwony";
wyswietl(&r2);
const Rower cr(r1);
wyswietl(&cr);
cout << '\n' << cr.liczbaKol() << " " << cr.kolor() << '\n' << endl;
const Samochod taksowka(1600.0);
wyswietl(&taksowka);
Samochod star(6,3000.0);
Samochod taxi2(taksowka);
wyswietl(&taxi2);
taxi2 = star;
wyswietl(&taxi2);
star += r1;
star += r2;
wyswietl(&taxi2);
wyswietl(&star);
star += r3;
wyswietl(&star);
system("PAUSE");
}
catch (exception& e) {
cerr << e.what();
}
return 0;
}
#include
#include
#include
using namespace std;
class Pojazd {
protected:
short _liczbaKol;
public:
Pojazd( short liczbaKol = 0 ) : _liczbaKol(liczbaKol) {}
Pojazd( const Pojazd & newbie ) :
_liczbaKol ( newbie._liczbaKol ) {}
virtual ~Pojazd() {}
const short liczbaKol() const { return _liczbaKol; }
short& liczbaKol() { return _liczbaKol; }
virtual void opisz() const = 0;
};
class Rower : public Pojazd {
private:
string _kolor;
public:
Rower( string kolor = "" ) : Pojazd( 2 ), _kolor( kolor ) {}
Rower( const Rower & newbie ) : Pojazd( 2 ), _kolor( newbie._kolor ) {}
const string kolor() const { return _kolor; }
string& kolor() { return _kolor; }
void opisz() const {
cout << "\nrower : " << _kolor << endl;
}
};
class Samochod : public Pojazd {
private:
double _pojemnosc;
short _rozmiar;
Rower *_tab;
public:
Samochod( double pojemnosc = 0.0 ) :
Pojazd( 4 ),
_pojemnosc( pojemnosc ),
_rozmiar( 0 ),
_tab( 0 ) {}
Samochod( short liczbaKol, double pojemnosc = 0.0 ) :
Pojazd( liczbaKol ),
_pojemnosc( pojemnosc ),
_rozmiar( 0 ),
_tab( 0 ) {}
Samochod( const Samochod & newbie ) :
Pojazd( newbie ),
_pojemnosc( newbie._pojemnosc ),
_rozmiar( newbie._rozmiar ),
_tab( new Rower [ _rozmiar ] )
{
for ( short i = 0; i < _rozmiar; ++i )
_tab[i] = newbie._tab[i];
}
~Samochod() { delete [] _tab; }
const double pojemnosc() const { return _pojemnosc; }
double& pojemnosc() { return _pojemnosc; }
void opisz() const {
cout << "Sam : " << _liczbaKol << " / " << _pojemnosc << endl;
if ( _rozmiar ){
cout << "Ilosc wiezionych rowerow: " << _rozmiar;
for ( short i = 0; i < _rozmiar; ++i )
cout << '\n' << i+1 << ". Rower kol: " << _tab[i].kolor();
}
cout << "\n\n";
}
Samochod& operator += ( const Rower & R_newbie );
Samochod& operator = ( const Samochod & S_newbie );
};
Samochod& Samochod::operator += ( const Rower & R_newbie ) {
Rower* tmp = _tab;
_rozmiar++;
_tab = new Rower [ _rozmiar ];
for ( short i = 0; i < _rozmiar - 1; ++i)
_tab[i] = tmp[i];
_tab[ _rozmiar - 1 ] = R_newbie;
delete [] tmp;
return *this;
}
Samochod& Samochod::operator = ( const Samochod& S_newbie ){
_liczbaKol = S_newbie._liczbaKol;
_pojemnosc = S_newbie._pojemnosc;
_rozmiar = S_newbie._rozmiar;
if ( _rozmiar != 0 ){
delete [] _tab;
_tab = new Rower [ _rozmiar ];
for ( short i = 0; i < _rozmiar ; ++i)
_tab[i] = S_newbie._tab[i];
}
return *this;
}
void wyswietl( const Pojazd * newbie ) {
newbie->opisz();
}
int main(){
try{
// kod testujacy mgr inz. Juliusz Mikoda
Rower r1, r2("zielony");
Rower r3(r2);
r1 = r2;
r1.kolor() = "niebieski";
r2.kolor() = "czerwony";
wyswietl(&r2);
const Rower cr(r1);
wyswietl(&cr);
cout << '\n' << cr.liczbaKol() << " " << cr.kolor() << '\n' << endl;
const Samochod taksowka(1600.0);
wyswietl(&taksowka);
Samochod star(6,3000.0);
Samochod taxi2(taksowka);
wyswietl(&taxi2);
taxi2 = star;
wyswietl(&taxi2);
star += r1;
star += r2;
wyswietl(&taxi2);
wyswietl(&star);
star += r3;
wyswietl(&star);
system("PAUSE");
}
catch (exception& e) {
cerr << e.what();
}
return 0;
}
<< Home