Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5.  
  6. class PojazdMechaniczny{
  7. public:
  8. char* nazwa;
  9. int wiek;
  10. PojazdMechaniczny(char* nazwa,int wiek):nazwa(nazwa),wiek(wiek){
  11.  
  12. this->nazwa=strcpy(new char[strlen(nazwa) + 1], nazwa);
  13. this->wiek=wiek;
  14. }
  15.  
  16. PojazdMechaniczny&operator ++ (){
  17. ++wiek;
  18. return *this;
  19. }
  20. virtual void show(){
  21. cout<<"nazwa: "<<nazwa<<" wiek: "<<wiek<<endl;
  22. }
  23. };
  24.  
  25. class Samochod : public virtual PojazdMechaniczny{
  26. public:
  27. char* kolor;
  28. int pojemnosc;
  29.  
  30. Samochod(char* nazwa, int wiek, char* kolor, int pojemnosc) :PojazdMechaniczny(nazwa,wiek), kolor(kolor), pojemnosc(pojemnosc){
  31.  
  32. }
  33. Samochod(char* kolor, int pojemnosc) :PojazdMechaniczny(nazwa,wiek), kolor(kolor), pojemnosc(pojemnosc){
  34.  
  35. }
  36. Samochod&operator ++ (){
  37. ++pojemnosc;
  38. return *this;
  39. }
  40. void show(){
  41. cout<<"nazwa: "<<nazwa<<" wiek: "<<wiek<<" kolor: "<<kolor<<" pojemnosc: "<<pojemnosc<<endl;
  42. }
  43.  
  44.  
  45. friend ostream&operator<<(ostream& out, const Samochod& o ){
  46. out<<"nazwa: "<<o.nazwa<<" wiek: "<<o.wiek<<" kolor: "<<o.kolor<<", pojemnosc: "<<o.pojemnosc;
  47. return out;
  48. }
  49. };
  50.  
  51.  
  52. class Lodz : public virtual PojazdMechaniczny{
  53. public:
  54. int wypornosc;
  55. char* typ;
  56.  
  57. Lodz(char *nazwa, int wiek, int wypornosc, char *typ) : PojazdMechaniczny(nazwa, wiek) {
  58. this->typ=typ;
  59. this->wypornosc=wypornosc;
  60. }
  61.  
  62. friend ostream&operator<<(ostream& out, const Lodz& o ){
  63. out<<"nazwa: "<<o.nazwa<<" wiek: "<<o.wiek<<"kolor: "<<o.typ<<", pojemnosc: "<<o.wypornosc;
  64. return out;
  65. }
  66. void show(){
  67. cout<<"nazwa: "<<nazwa<<" wiek: "<<wiek<<" typ: "<<typ<<" wypornosc: "<<wypornosc<<endl;
  68. }
  69. };
  70.  
  71. class Amfibia : public Lodz,Samochod{
  72. public:
  73. Amfibia(char* nazwa,int wiek ,int wypornosc, char *typ, char* kolor, int pojemnosc ): Lodz(nazwa,wiek,wypornosc,typ), Samochod(kolor, pojemnosc){
  74. }
  75. friend ostream&operator<<(ostream& out, const Amfibia& o ){
  76.  
  77. 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;
  78. return out;
  79. }
  80. Samochod&operator ++ (){
  81. ++wypornosc;
  82. return *this;
  83. }
  84. };
  85.  
  86. class Garaz{
  87. private:
  88. PojazdMechaniczny** pojazdy;
  89. public:
  90. Garaz()
  91. {
  92. this->pojazdy = new PojazdMechaniczny*[1];
  93. this->pojazdy[0] = new Samochod((char*)"BMW", 2017, (char*)"Czarny", 1597);
  94. this->pojazdy[1] = new Lodz((char*)"lodz", 2000, 500, (char*)"jakis typ");
  95. }
  96. ~Garaz()
  97. {
  98. for (int i = 0; i < 2; i++)
  99. {
  100. delete this->pojazdy[i];
  101. }
  102. delete this->pojazdy;
  103. }
  104.  
  105. void Show()
  106. {
  107. for (int i = 0; i < 2; i++)
  108. {
  109. this->pojazdy[i]->show();
  110. }
  111. }
  112. };
  113.  
  114.  
  115. int main() {
  116.  
  117. PojazdMechaniczny *p1 = new PojazdMechaniczny("pojazd",10);
  118.  
  119. Samochod s1("c",2,"cza",2);
  120. Samochod s2("m",1,"bialy",2);
  121. Amfibia am("Amfibia",2,2,"typ","czarny",20);
  122. p1->show();
  123. s1.show();
  124. s2.show();
  125. Garaz garaz;
  126. garaz.Show();
  127.  
  128.  
  129. delete[] p1;
  130.  
  131. /*
  132. cout<<++s2<<endl;
  133. cout<<s1<<endl;
  134. cout<<++am;
  135. */
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement