Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Комп. практикум, 1.10.18
- Агрегирование
- class TA
- {
- ...
- };
- //реализации методов класса TA
- class TB
- {
- TA x; //либо TA* p;
- ...
- };
- //реализации методов класса TВ
- Пример:
- Даны 2 класса TONE, TTWO
- Tone - 2 переменных double + 2 указателя p1 p2 + конструктор + деструктор
- Ttwo - указатель на переменную типа tone(tone*)+ конструктор + деструктор
- В функции main объявить указатель на объект класса TTwo и указатель p3
- Присвоить значение переменным *p1 в конструкторе TOne
- a1, *p2 в конст. TTwo
- a2 в main
- p3 присвоить значение переменной a1
- Вывести на экран значения переменных и их адреса, своевременно освободить выделенную память
- Допущения: поля классов объявить как public
- копировать объекты не предполагается , без констр. копий
- class TOne
- {
- public:
- double a1,a2,*p1,*p2;
- TOne();
- ~TOne();
- };
- //
- TOne::TOne()
- {-
- p1 = new double;
- p2 = new double;
- *p1 = 1;
- }
- TOne::~TOne()
- {
- delete p1;
- delete p2;
- }
- class TTwo
- {
- public:
- TOne* pone;
- TTwo();
- ~TTwo();
- };
- //
- TTwo::TTwo()
- {
- pone = new TOne;
- pone -> a1 = 100;
- *pone -> p2 = 2;
- }
- TTwo::~TTwo()
- {
- delete pone;
- }
- void main()
- {
- TTwo* t;
- t = new TTwo;
- double* p3;
- t -> pone -> a2 = 200;
- *p3 = t -> pone -> a1;
- //
- cout << "Значение а1 = " << t -> pone -> a1 << endl << "Ее адрес" << &t -> pone -> a1 << endl;
- cout << "Значение а2 = " << t -> pone -> a2 << endl << "Ее адрес" << &t -> pone -> a2 << endl;
- cout << "Указатель p1 =" << t -> pone -> p1 << endl << "В нем значение" << *t -> pone -> p1 << endl;
- Аналогично для p2;
- Похоже для p3;
- delete t;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement