Здравствуйте, Denwer, Вы писали:
D>Ну все правельно, потому что трижды вызывается конструктор. Кстати на один вызов можно сократить если в операторе присваивания сделать возврат ссылки, тогда вызов конструктора копирования не произойдет(соответсвенно сократится на один и вызов деструктора).
D>Оставшиеся два вызова конструктора: при создании твоего объекта, и при создании объекта в массиве, ты же там хранишь если так можно сказать копии объектов которые передаешь в функцию Add, если хочешь и этого избежать то сохраняй указатели. Ну соответсвенно тогда получится и деструкторов столько сколько конструкторов(имеется кол-во вызовов конечно).
D>D>CArray <MyClass*,MyClass*> arrayMyClasses;
D>
Однако, при таком способе обявления нельзя будет добавлять не динамически выделенные объекты, стековые например, объявленные в теле функции. При завершении функции объект будет разрушаться а указатель хранящийся в arrayMyClasses будет указывать на освобожденную область памяти. А в общем, это менее избыточный способ с точки зрения ресурсоемкости.