【发布时间】:2009-11-07 13:35:54
【问题描述】:
我知道像 vector 这样的 STL 容器会在添加对象时复制它。 push_back 方法看起来像:
void push_back ( const T& x );
我很惊讶地看到它把项目作为参考。我写了一个示例程序来看看它是如何工作的。
struct Foo
{
Foo()
{
std::cout << "Inside Foo constructor" << std::endl;
}
Foo(const Foo& f)
{
std::cout << "inside copy constructor" << std::endl;
}
};
Foo f;
std::vector<Foo> foos;
foos.push_back(f);
这会复制对象,我可以看到它正在调用 copy-constructor。
我的问题是,当push_back 将项目作为参考时,它是如何调用复制构造函数的?还是我在这里遗漏了什么?
有什么想法吗?
【问题讨论】:
标签: c++ stl constructor