http://bbs.csdn.net/topics/390692287?page=1
class A {
private:
int a_;
public:
A():a_(0) { cout << "create A(" << a_ <<")" << endl;}
A(int a):a_(a) { cout << "create A(" << a_<< ")" << endl; }
~A() {cout << "destroy A(" << a_ <<")" << endl;}
};
int test3(){
map<string, A> m;
A a1(1);
m["aaa"]=a1;
cout << "sign done" << endl;
/*
cout << "to clear" << endl;
m.clear();
cout << "clear done" << endl;
*/
}
int main(){
test3();
}
输出结果为
create A(1)
create A(0)
destroy A(0)
destroy A(0)
sign done
destroy A(1)
destroy A(1)
一直对destroy A(0) 有两个,destroy A(1)有两个不明白,想着应该为一个才对。
后来经过