【发布时间】:2011-06-02 23:45:22
【问题描述】:
std::vector 在为其包含的对象创建新实例时调用哪个构造函数?我的印象是它调用了一个默认构造函数,但是如果没有定义或者编译器正在为我做那件事怎么办?
特别是在这种情况下:
class Foo
{
public:
Foo(int size)
{
data = new double[size];
}
~Foo()
{
delete[] data;
}
private:
double* data;
};
std::vector<Foo> myVector;
Foo bar(5);
myVector.push_back(bar);
//stuff
当对象在构造之前的大小未知时,它如何知道要分配多少内存?
【问题讨论】:
标签: c++ object vector constructor