蔭2006 C++STL矢量添加使用Borland序列
class A
{
private:
TObjectList* list;
int myid;
public:
__fastcall A(int);
__fastcall ~A();
};
__fastcall A::A(int num)
{
myid = num;
list = new TObjectList();
}
__fastcall A::~A()
{
}
int main(int argc, char* argv[])
{
myfunc();
return 0;
}
void myfunc()
{
vector<A> vec;
vec.push_back(A(1));
}
當我一個新的對象A添加到該載體時,它調用其析構函數兩次,然後一旦當VEC超出範圍,所以在總共3個倍。
我在想它應該在添加對象時調用一次,然後在vec出去時調用一次scope。
作爲一個方面說明。 RAW指針的使用沒有複製構造函數和賦值操作符是非常危險的。 – 2009-06-17 22:45:16