Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class PojazdMechaniczny{
- public:
- char* nazwa;
- int wiek;
- PojazdMechaniczny(char* nazwa,int wiek):nazwa(nazwa),wiek(wiek){
- this->nazwa=strcpy(new char[strlen(nazwa) + 1], nazwa);
- this->wiek=wiek;
- }
- PojazdMechaniczny&operator ++ (){
- ++wiek;
- return *this;
- }
- virtual void show(){
- cout<<"nazwa: "<<nazwa<<" wiek: "<<wiek<<endl;
- }
- };
- class Samochod : public virtual PojazdMechaniczny{
- public:
- char* kolor;
- int pojemnosc;
- Samochod(char* nazwa, int wiek, char* kolor, int pojemnosc) :PojazdMechaniczny(nazwa,wiek), kolor(kolor), pojemnosc(pojemnosc){
- }
- Samochod(char* kolor, int pojemnosc) :PojazdMechaniczny(nazwa,wiek), kolor(kolor), pojemnosc(pojemnosc){
- }
- Samochod&operator ++ (){
- ++pojemnosc;
- return *this;
- }
- void show(){
- cout<<"nazwa: "<<nazwa<<" wiek: "<<wiek<<" kolor: "<<kolor<<" pojemnosc: "<<pojemnosc<<endl;
- }
- friend ostream&operator<<(ostream& out, const Samochod& o ){
- out<<"nazwa: "<<o.nazwa<<" wiek: "<<o.wiek<<" kolor: "<<o.kolor<<", pojemnosc: "<<o.pojemnosc;
- return out;
- }
- };
- class Lodz : public virtual PojazdMechaniczny{
- public:
- int wypornosc;
- char* typ;
- Lodz(char *nazwa, int wiek, int wypornosc, char *typ) : PojazdMechaniczny(nazwa, wiek) {
- this->typ=typ;
- this->wypornosc=wypornosc;
- }
- friend ostream&operator<<(ostream& out, const Lodz& o ){
- out<<"nazwa: "<<o.nazwa<<" wiek: "<<o.wiek<<"kolor: "<<o.typ<<", pojemnosc: "<<o.wypornosc;
- return out;
- }
- void show(){
- cout<<"nazwa: "<<nazwa<<" wiek: "<<wiek<<" typ: "<<typ<<" wypornosc: "<<wypornosc<<endl;
- }
- };
- class Amfibia : public Lodz,Samochod{
- public:
- Amfibia(char* nazwa,int wiek ,int wypornosc, char *typ, char* kolor, int pojemnosc ): Lodz(nazwa,wiek,wypornosc,typ), Samochod(kolor, pojemnosc){
- }
- friend ostream&operator<<(ostream& out, const Amfibia& o ){
- out<<"nazwa: "<< static_cast<Lodz>(o).nazwa<<" wiek: "<<static_cast<Lodz>(o).wiek<<" kolor: "<<o.typ<<", pojemnosc: "<<o.wypornosc<<" kolor: "<<o.kolor<<" pojemnosc: "<<o.pojemnosc;
- return out;
- }
- Samochod&operator ++ (){
- ++wypornosc;
- return *this;
- }
- };
- class Garaz{
- private:
- PojazdMechaniczny** pojazdy;
- public:
- Garaz()
- {
- this->pojazdy = new PojazdMechaniczny*[1];
- this->pojazdy[0] = new Samochod((char*)"BMW", 2017, (char*)"Czarny", 1597);
- this->pojazdy[1] = new Lodz((char*)"lodz", 2000, 500, (char*)"jakis typ");
- }
- ~Garaz()
- {
- for (int i = 0; i < 2; i++)
- {
- delete this->pojazdy[i];
- }
- delete this->pojazdy;
- }
- void Show()
- {
- for (int i = 0; i < 2; i++)
- {
- this->pojazdy[i]->show();
- }
- }
- };
- int main() {
- PojazdMechaniczny *p1 = new PojazdMechaniczny("pojazd",10);
- Samochod s1("c",2,"cza",2);
- Samochod s2("m",1,"bialy",2);
- Amfibia am("Amfibia",2,2,"typ","czarny",20);
- p1->show();
- s1.show();
- s2.show();
- Garaz garaz;
- garaz.Show();
- delete[] p1;
- /*
- cout<<++s2<<endl;
- cout<<s1<<endl;
- cout<<++am;
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement