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。