MeehoweCK

Untitled

Mar 28th, 2020
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.83 KB | None | 0 0
  1. // main.cpp
  2. #include <iostream>
  3. #include "Dzielo.h"
  4. #include "Film.h"
  5. #include "Ksiazka.h"
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.     Dzielo* dziela[2];
  12.     dziela[0] = new Ksiazka("Rok 1984", 1948, "George Orwell", 300, "ABC");
  13.     dziela[1] = new Film("Forrest Gump", 1994, "Zemeckis", "Groom", 80000000);
  14.     for(int i = 0; i < 2; ++i)
  15.         dziela[i]->wypisz_dane();
  16.     delete dziela[0];
  17.     delete dziela[1];
  18.     return 0;
  19. }
  20.  
  21. // Head.hpp
  22. #ifndef HEAD_HPP
  23. #define HEAD_HPP
  24.  
  25. class Dzielo;
  26. class Ksiazka;
  27. class Film;
  28. class Artykul;
  29.  
  30. enum typ
  31. {
  32.     ksiazka,
  33.     film,
  34.     artykul
  35. };
  36.  
  37. #endif // HEAD_HPP
  38.  
  39. // Dzielo.h
  40. #ifndef DZIELO_H
  41. #define DZIELO_H
  42.  
  43. #include <iostream>
  44. #include "../Head.hpp"
  45.  
  46. using namespace std;
  47.  
  48. class Dzielo
  49. {
  50. protected:
  51.     string tytul;
  52.     typ typ_publikacji;
  53.     int rok_wydania;
  54. public:
  55.     Dzielo(string, typ, int);
  56.     virtual void wypisz_dane() = 0;     // metoda czysto wirtualna - Dzielo jest klasą abstrakcyjną
  57. };
  58.  
  59. #endif // DZIELO_H
  60.  
  61. // Dzielo.cpp
  62. #include "Dzielo.h"
  63.  
  64. /*class Dzielo
  65. {
  66. protected:
  67.     string tytul;
  68.     typ typ_publikacji;
  69.     int rok_wydania;
  70. public:
  71.     Dzielo(string, typ, int);
  72.     void wypisz_dane();
  73. };*/
  74.  
  75. Dzielo::Dzielo(string t, typ publikacja, int rok) : tytul(t), typ_publikacji(publikacja), rok_wydania(rok)
  76. {
  77. }
  78.  
  79. // Ksiazka.h
  80. #ifndef KSIAZKA_H
  81. #define KSIAZKA_H
  82.  
  83. #include "Dzielo.h"
  84.  
  85. /*class Dzielo
  86. {
  87. protected:
  88.     string tytul;
  89.     typ typ_publikacji;
  90.     int rok_wydania;
  91. public:
  92.     Dzielo(string, typ, int);
  93.     virtual void wypisz_dane() = 0;     // metoda czysto wirtualna - Dzielo jest klasą abstrakcyjną
  94. };*/
  95.  
  96. class Ksiazka : public Dzielo       // informujemy, że Ksiazka dziedziczy od klasy Dzielo
  97. {
  98.     string autor;
  99.     int liczba_stron;
  100.     string wydawnictwo;
  101. public:
  102.     Ksiazka(string, int, string, int, string);
  103.     void wypisz_dane();
  104. };
  105.  
  106. #endif // KSIAZKA_H
  107.  
  108. // Ksiazka.cpp
  109. #include "Ksiazka.h"
  110.  
  111. /*class Ksiazka : public Dzielo
  112. {
  113.     string autor;
  114.     int liczba_stron;
  115.     string wydawnictwo;
  116. public:
  117.     Ksiazka(string, int, string);
  118.     void wypisz_dane();
  119. protected:
  120.     string tytul;
  121.     typ typ_publikacji;
  122.     int rok_wydania;
  123. };*/
  124.  
  125. Ksiazka::Ksiazka(string tyt, int rok, string aut, int objetosc, string wydawca) : Dzielo(tyt, ksiazka, rok), autor(aut), liczba_stron(objetosc), wydawnictwo(wydawca)
  126. {
  127. }
  128.  
  129. void Ksiazka::wypisz_dane()
  130. {
  131.     cout << "Autor: " << autor << ", tytul: " << tytul << ", wydana przez " << wydawnictwo << " w roku " << rok_wydania << ", liczba stron: " << liczba_stron << endl;
  132. }
  133.  
  134. // Film.h
  135. #ifndef FILM_H
  136. #define FILM_H
  137.  
  138. #include "Dzielo.h"
  139.  
  140. /*class Dzielo
  141. {
  142. protected:
  143.     string tytul;
  144.     typ typ_publikacji;
  145.     int rok_wydania;
  146. public:
  147.     Dzielo(string, typ, int);
  148.     virtual void wypisz_dane() = 0;     // metoda czysto wirtualna - Dzielo jest klasą abstrakcyjną
  149. };*/
  150.  
  151. class Film : public Dzielo       // informujemy, że Ksiazka dziedziczy od klasy Dzielo
  152. {
  153.     string rezyser;
  154.     string scenarzysta;
  155.     int budzet;
  156. public:
  157.     Film(string, int, string, string, int);
  158.     void wypisz_dane();
  159. };
  160.  
  161. #endif // FILM_H
  162.  
  163. // Film.cpp
  164. #include "Film.h"
  165.  
  166. /*class Film : public Dzielo       // informujemy, że Ksiazka dziedziczy od klasy Dzielo
  167. {
  168.     string rezyser;
  169.     string scenarzysta;
  170.     int budzet;
  171. public:
  172.     Film(string, int, string, string, int);
  173.     void wypisz_dane();
  174. protected:
  175.     string tytul;
  176.     typ typ_publikacji;
  177.     int rok_wydania;
  178. };*/
  179.  
  180. Film::Film(string tyt, int rok, string director, string screenplay, int bud) : Dzielo(tyt, film, rok), rezyser(director), scenarzysta(screenplay), budzet(bud)
  181. {
  182. }
  183.  
  184. void Film::wypisz_dane()
  185. {
  186.     cout << "Film \"" << tytul << "\"  w rezyserii " << rezyser << ", scenariusz: " << scenarzysta << "(rok " << rok_wydania << "), budzet: " << budzet << " USD\n";
  187. }
Advertisement
Add Comment
Please, Sign In to add comment