读书人

vectorlt;Foogt; empty(十) 为啥只进入一次

发布时间: 2013-11-29 13:49:33 作者: rapoo

vector<Foo> empty(10) 为啥只进入一次构造函数?

#include <iostream>
#include <vector>
using namespace std;

class Foo
{
public:
Foo()
{cout << "in foo\n";}
Foo(int i)
{cout << "in foo 2\n";}


};

int main()
{
vector<Foo> empty(10);
vector<Foo> Fv(10,1);
return 0;
}


$ ./1
in foo
in foo 2


我感觉应该构造10次才对的啊
[解决办法]
因为
vector<Foo> empty(10);
的含义是生成10个相同的元素,所以是调用了一次构造,然后把这个对象拷贝了10份放到vector里。

读书人网 >C++

热点推荐