为什么容器中的类是顺序析构的?
// copy_control.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <string>
#include<vector>
using namespace std;
struct Exmpl {
Exmpl():val(cnt){ cout<<"Exmpl()"<<"val = "<<val<<endl;cnt++; }
Exmpl(const Exmpl& e)
{ val=e.val;cout<<"Exmpl(const Exmpl& e)"<<"val = "<<val<<endl;cnt++;}
Exmpl& operator=(const Exmpl& e){
cout<<"Exmpl& operator=(const Exmpl& e)"<<endl;
return *this;
}
~Exmpl(){cout<<"~Exmpl()"<<"val = "<<val<<endl;}
private:
int val;
static int cnt;
};
int Exmpl::cnt=1;
int _tmain(int argc, _TCHAR* argv[])
{
Exmpl *p=new Exmpl[3];
vector<Exmpl> Evec(p,p+3);
delete [] p;
return 0;
}