Advertisement
kqlul123

агрегирование

Nov 16th, 2018
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. Комп. практикум, 1.10.18
  2.  
  3. Агрегирование
  4.  
  5. class TA
  6. {
  7. ...
  8. };
  9. //реализации методов класса TA
  10.  
  11. class TB
  12. {
  13. TA x; //либо TA* p;
  14. ...
  15. };
  16. //реализации методов класса TВ
  17.  
  18.  
  19.  
  20. Пример:
  21. Даны 2 класса TONE, TTWO
  22. Tone - 2 переменных double + 2 указателя p1 p2 + конструктор + деструктор
  23. Ttwo - указатель на переменную типа tone(tone*)+ конструктор + деструктор
  24. В функции main объявить указатель на объект класса TTwo и указатель p3
  25. Присвоить значение переменным *p1 в конструкторе TOne
  26. a1, *p2 в конст. TTwo
  27. a2 в main
  28. p3 присвоить значение переменной a1
  29.  
  30. Вывести на экран значения переменных и их адреса, своевременно освободить выделенную память
  31. Допущения: поля классов объявить как public
  32. копировать объекты не предполагается , без констр. копий
  33.  
  34.  
  35.  
  36. class TOne
  37. {
  38. public:
  39. double a1,a2,*p1,*p2;
  40. TOne();
  41. ~TOne();
  42. };
  43. //
  44.  
  45. TOne::TOne()
  46. {-
  47. p1 = new double;
  48. p2 = new double;
  49. *p1 = 1;
  50.  
  51.  
  52.  
  53. }
  54.  
  55. TOne::~TOne()
  56. {
  57. delete p1;
  58. delete p2;
  59. }
  60.  
  61. class TTwo
  62. {
  63. public:
  64. TOne* pone;
  65. TTwo();
  66. ~TTwo();
  67. };
  68. //
  69. TTwo::TTwo()
  70. {
  71. pone = new TOne;
  72. pone -> a1 = 100;
  73. *pone -> p2 = 2;
  74. }
  75. TTwo::~TTwo()
  76. {
  77. delete pone;
  78. }
  79.  
  80.  
  81. void main()
  82. {
  83. TTwo* t;
  84. t = new TTwo;
  85. double* p3;
  86. t -> pone -> a2 = 200;
  87. *p3 = t -> pone -> a1;
  88. //
  89.  
  90. cout << "Значение а1 = " << t -> pone -> a1 << endl << "Ее адрес" << &t -> pone -> a1 << endl;
  91. cout << "Значение а2 = " << t -> pone -> a2 << endl << "Ее адрес" << &t -> pone -> a2 << endl;
  92. cout << "Указатель p1 =" << t -> pone -> p1 << endl << "В нем значение" << *t -> pone -> p1 << endl;
  93. Аналогично для p2;
  94. Похоже для p3;
  95.  
  96. delete t;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement