Здравствуйте, onegold, Вы писали:
O>По моим понятиям колличество конструкторов должно соответствовать количеству деструкторов
O>А получаю:
O>Ctor 1
O>Dtor 1
O>Ctor 2
O>Dtor 1
O>Dtor 2
O>Dtor 2
O>Dtor 1
O>Dtor 1
O>Dtor 2
O>Обыясните пожалуйста.
А ты объяви
конструктор копийАвтор: CEMb
Дата: 25.05.06
и посчитай количество вызовов. У тебя же объекты в vector'е конструируются не дефолтным конструктором, а копирующим.
Столкнулся с одной проблемкой.
Есть такой код написанный в 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
Обыясните пожалуйста.
Заранее спасибо за ответы.