std::vector вызов деструкторов объектов
От: onegold Россия  
Дата: 01.07.06 16:43
Оценка:
Столкнулся с одной проблемкой.
Есть такой код написанный в VC 7.1


#include <iostream>
#include <vector>

class Temp
{
public:
    Temp(int i)
        : value_(i)
    {
        std::cout << "Ctor " << value_ << std::endl;
    }
    ~Temp()
    {
        std::cout << "Dtor " << value_ << std::endl;
    }
    int value_;
};

int main(int argc, char* argv[])
{
    std::vector<Temp> vec;
    Temp one(1);
    vec.push_back(one);
    Temp two(2);
    vec.push_back(two);
    return 0;
}


По моим понятиям колличество конструкторов должно соответствовать количеству деструкторов
А получаю:
Ctor 1
Dtor 1
Ctor 2
Dtor 1
Dtor 2
Dtor 2
Dtor 1
Dtor 1
Dtor 2

Обыясните пожалуйста.
Заранее спасибо за ответы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.