vector:push_back时的对象构造

class CT
{
public:
CT()
{
std::cout << "CT()" << std::endl;
}


~CT()
{
std::cout << "~CT()" << std::endl;
}


CT(const CT &t)
{
std::cout << "CT(CT &t)" << std::endl;
}
};


void main()
{
std::vector<CT> vec;

CT t;
vec.push_back(t);

}


两次CT(CT &t):

第一次:将t push_back后赋给内部一个局部临时变量tmp

第二次:内部新建一个对象CT  *pt = new CT(tmp)


你可能感兴趣的:(vector,Class)