Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. class Carte
  7. {
  8. char titlu[64];
  9. const float cost2 = 100;
  10. protected:
  11. void afis_cost2()
  12. {
  13. cout << "costul2 " << cost2 << endl;
  14. }
  15. public:
  16. Carte(char *titlu)
  17. {
  18. strcpy(Carte::titlu, titlu);
  19. cout << "constructorul clasei de baza1" << endl;
  20. }
  21. void afis_carte()
  22. {
  23. cout << "titlul cartii este " << titlu << endl;
  24. }
  25. void afis_carte(char *titlu2)
  26. {
  27. strcpy(Carte::titlu, titlu2);
  28. cout << "titlul cartii este " << titlu << endl;
  29. }
  30. ~Carte()
  31. {
  32. cout << "destructorul clasei de baza1" << endl;
  33. }
  34. protected:
  35. float cost;
  36. void afis_cost()
  37. {
  38. cout << "cartea costa " << cost << endl;
  39. }
  40. };
  41. class Manuale;
  42. class Revista:Carte {
  43. friend int pretTotal(Revista, Manuale);
  44. private:
  45. int pret = 10;
  46. public:
  47. Revista& operator++(int);
  48. Revista(char titlu[64]):Carte(titlu){}
  49. };
  50.  
  51. class Manuale:Carte {
  52. friend int pretTotal(Revista, Manuale);
  53. private:
  54. int pret = 20;
  55. public:
  56. Manuale& operator++(int);
  57. Manuale(char titlu[64]):Carte(titlu){}
  58. };
  59.  
  60. int pretTotal(Revista a, Manuale b){
  61. return (a.pret+b.pret);
  62. }
  63.  
  64. class Pagini
  65. {
  66. protected:
  67. int linii;
  68. public:
  69. Pagini(int linii)
  70. {
  71. Pagini::linii = linii;
  72. cout << "constructor clasa de baza2" << endl;
  73. }
  74. void afis_pagini()
  75. {
  76. cout << "cartea are nr de pagini " << linii << endl;
  77. }
  78. ~Pagini()
  79. {
  80. cout << "destructorul clasei de baza2" << endl;
  81. }
  82.  
  83. };
  84. class FisaBiblioteca :Carte, Pagini
  85. {
  86. char autor[64], editura[64];
  87. public:
  88. FisaBiblioteca( char *titlu, char *autor, char *editura) :Carte(titlu), Pagini(166)
  89. {
  90. strcpy(FisaBiblioteca::autor, autor);
  91. strcpy(FisaBiblioteca::editura, editura);
  92. cost = 49.98;
  93. cout << "Constructorul clasei derivate" << endl;
  94. }
  95. void afis_biblio()
  96. {
  97. afis_carte();
  98. afis_cost();
  99. afis_cost2();
  100. cout << "autor: " << autor << " editura " << editura << endl;
  101. afis_pagini();
  102. }
  103. ~FisaBiblioteca()
  104. {
  105. cout << "Destructorul clasei derivate" << endl;
  106. }
  107. };
  108. class Imprimanta {
  109. protected:
  110. int rezolutie;
  111. public:
  112. Imprimanta(int rezolutie = 600) {
  113. this->rezolutie = rezolutie;
  114. cout << "Apel Constr. Imprimanta\n";
  115. }
  116. ~Imprimanta() {
  117. cout << "Apel Destr. Imprimanta\n";
  118. }
  119. void print(char *text) {
  120. cout << "Print " << text << "\n";
  121. }
  122. };
  123. int main()
  124. {
  125. FisaBiblioteca fisa((char*)"C++ Programare", (char*)"Stroustrup", (char*)"Editura");
  126. fisa.afis_biblio();
  127. return 0;
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement