Re[2]: CArray + Template
От: fin Россия http://limits.ru
Дата: 22.09.03 09:02
Оценка:
Здравствуйте, Denwer, Вы писали:

D>Ну все правельно, потому что трижды вызывается конструктор. Кстати на один вызов можно сократить если в операторе присваивания сделать возврат ссылки, тогда вызов конструктора копирования не произойдет(соответсвенно сократится на один и вызов деструктора).


D>Оставшиеся два вызова конструктора: при создании твоего объекта, и при создании объекта в массиве, ты же там хранишь если так можно сказать копии объектов которые передаешь в функцию Add, если хочешь и этого избежать то сохраняй указатели. Ну соответсвенно тогда получится и деструкторов столько сколько конструкторов(имеется кол-во вызовов конечно).


D>
D>CArray <MyClass*,MyClass*> arrayMyClasses;
D>


Однако, при таком способе обявления нельзя будет добавлять не динамически выделенные объекты, стековые например, объявленные в теле функции. При завершении функции объект будет разрушаться а указатель хранящийся в arrayMyClasses будет указывать на освобожденную область памяти. А в общем, это менее избыточный способ с точки зрения ресурсоемкости.
Егор Кабанов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.