C++ 如何向父类添加元素?
我有以下继承链:C++ 如何向父类添加元素?,c++,inheritance,containers,C++,Inheritance,Containers,我有以下继承链: class Derivation : public std::vector<Symbol> { }; class Alternatives : public std::vector<Derivation> { }; class Production : public std::pair<NonTerminal, Alternatives> { int order = 0; }; class Productions : publ
class Derivation : public std::vector<Symbol> {
};
class Alternatives : public std::vector<Derivation> { };
class Production : public std::pair<NonTerminal, Alternatives> {
int order = 0;
};
class Productions : public std::vector<Production> { };
class Grammar {
Productions productions;
};
类派生:公共std::vector{
};
类替代:公共std::vector{};
类生成:公共std::pair{
整数阶=0;
};
类产品:公共std::vector{};
课堂语法{
制作;
};
如何访问父类以向其添加元素
或者有没有办法直接做这样的事情
productions.production[3].alternatives.push_back(std::vector<Symbol>())
productions.production[3]。备选方案。推回(std::vector())
也许有点做作:
productions::parents.last.push_back(std::vector<Symbol()>
productions::parents.last.push_back(std::vector)
如果不在任何地方声明成员,为什么要假定productions
具有成员production
?看起来您希望继承能神奇地将成员添加到类中。productions
不包含向量,它是一个向量..只是一个旁注:从标准库类派生很少是一个好主意,除非它们明确用于继承。而是使用一个私有的std::vector
成员变量,并在类接口中公开函数来操作它。好的,谢谢panta rhei。