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) { }