C++ 结构继承并用基类初始化

C++ 结构继承并用基类初始化,c++,c++11,C++,C++11,得到以下场景: struct BaseInfo { std::string name; }; struct AddInfo : public BaseInfo { std::string name2; } 我想用BaseInfo对象初始化AddInfo std::vector<BaseInfo> base; // objects already inserted std::vector<AddInfo> add(base);// <-- failed

得到以下场景:

struct BaseInfo
{
  std::string name;
};

struct AddInfo : public BaseInfo
{
  std::string name2;
}
我想用BaseInfo对象初始化
AddInfo

std::vector<BaseInfo> base; // objects already inserted
std::vector<AddInfo> add(base);// <-- failed 
std::向量基;//已插入的对象

标准::矢量加(基);//
std::vector
std::vector.

我需要为此创建一个复制部分吗?@Roby是的,如果您还没有,您需要提供一个合适的构造函数。这很有效,谢谢,但为什么迭代器可以,而不是孔对象?@Roby我扩展了答案。我希望现在一切都清楚了。
std::vector<AddInfo> add(base.begin(), base.end());
BaseInfo b;
AddInfo a(b);
AddInfo(const BaseInfo& base) : BaseInfo(base) {  }