Re: std::vector. как правильно упаковать в вектор объект
От: Аноним  
Дата: 04.09.06 14:56
Оценка:
Здравствуйте, Аноним, Вы писали:


А>class A
А>{
А>   public:
А>     A();
А>     ~A();
А>     BOOL Init();
А>     BOOL Start();
А>   .
А>   .
А>   .
А>   private:
А>     vector<B> vec;
А>};

[ кусь ]

А>A::~A()
А>{
А>   vector<B>::iterator iter = vec.begin(); // Этот код не может не падать. ВЕКТОР УДАЛИТ ЭЛЕМЕНТЫ САМ.
А>   while(iter != vec.end())
А>   {
А>      delete iter;
А>      iter++;
А>   } 
А>}

А>BOOL A::Init(параметры)
А>{
А>  B *pB;
А>  pB = new B(параметры); // Зачем создавать по new? на стеке тоже пректасно можно создавать элементы.
А>  vec.push_back(*pB);    // Я бы написал vec.push_back( B(параметры) );
А>  delete pB;
А>}

[кусь]

А>Операторы присваивания и конструкторы копирования класса B написаны и отлично работают.


Код
B( const B & )
const B operator = ( const B & )
~B();
В студию.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.