Advertisement
Berty97

Untitled

Jan 16th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. using namespace std;
  4.  
  5.  
  6. class Figura
  7. {
  8. protected:
  9. char* nume;
  10. Figura()
  11. {
  12. nume = NULL;
  13. }
  14. public:
  15. Figura(char*x)
  16. {
  17. nume = NULL;
  18. if (x)
  19. {
  20. nume = new char[strlen(x) + 1];
  21. nume = x;
  22. }
  23. }
  24. virtual void afis() = 0;
  25.  
  26. ~Figura()
  27. {
  28. if (nume)
  29. {
  30. delete[]nume;
  31. }
  32. }
  33.  
  34. };
  35.  
  36. class Patrat :public Figura
  37. {
  38. protected:
  39. double latura;
  40. Patrat() :Figura()
  41. {
  42. latura = 0;
  43. }
  44. public:
  45. Patrat(char*nume, double x) :Figura(nume)
  46. {
  47. latura = 0;
  48. if (x)
  49. {
  50. latura = x;
  51. }
  52. }
  53. void afis()
  54. {
  55. cout << nume << " cu latura de: " << latura << endl;
  56. }
  57.  
  58. };
  59.  
  60. class Dreptunghi :public Figura
  61. {
  62. protected:
  63. double lungime;
  64. double latime;
  65. Dreptunghi() :Figura()
  66. {
  67. lungime = 0;
  68. latime = 0;
  69. }
  70. public:
  71. Dreptunghi(char*nume, double x, double y) :Figura(nume)
  72. {
  73. if (x)
  74. {
  75. lungime = x;
  76. }
  77. if (y)
  78. {
  79. latime = y;
  80. }
  81. }
  82. void afis()
  83. {
  84. cout << nume << " cu latime de: " << latime << " si lungime de: " << lungime << endl;
  85. }
  86.  
  87. };
  88.  
  89. class Cerc : public Figura
  90. {
  91. protected:
  92. double lungime;
  93. Cerc() :Figura()
  94. {
  95. lungime = 0;
  96. }
  97. public:
  98. Cerc(char*nume, double x) :Figura(nume)
  99. {
  100. if (x)
  101. {
  102. lungime = x;
  103. }
  104. }
  105. void afis()
  106. {
  107. cout << nume << " cu lungime de: " << lungime << endl;
  108. }
  109. };
  110.  
  111. class Ecran :public Figura
  112. {
  113. protected:
  114. Figura **p;
  115. int figuri;
  116. Ecran() :Figura()
  117. {
  118. figuri = 0;
  119. }
  120. public:
  121.  
  122. Ecran(int n, Figura *f[])
  123. {
  124. figuri = n;
  125. p = new Figura*[figuri];
  126. for (int i = 0; i<figuri; i++)
  127. {
  128. p[i] = f[i];
  129. }
  130. }
  131. Ecran(const Ecran &plansa)
  132. {
  133. figuri = plansa.figuri;
  134. p = new Figura*[figuri];
  135. for (int i = 0; i < figuri; i++)
  136. {
  137. p[i] = plansa.p[i];
  138. }
  139. }
  140. void afis()
  141. {
  142. cout << "Ecran:" << endl;
  143. cout << "=======================================" << endl;
  144. for (int i = 0; i<figuri; i++)
  145. {
  146. if (p[i] != 0)
  147. {
  148. p[i]->afis();
  149. }
  150. }
  151. cout << endl;
  152. cout << "=======================================" << endl;
  153.  
  154. }
  155. };
  156.  
  157. int main()
  158. {
  159.  
  160. Dreptunghi b("dreptunghi", 23, 56);
  161. Cerc c("cerc", 34);
  162. Patrat d("patrat", 45);
  163.  
  164. b.afis();
  165. c.afis();
  166. d.afis();
  167. Figura* pobA;
  168. pobA = &c;
  169. c.afis();
  170.  
  171.  
  172. Figura *f[] = { &c, &d };
  173. Ecran x(2, f);
  174. x.afis();
  175. system("pause");
  176. return 0;
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement