我有三个层次相关的类:
Pattern
,其中有类型为std :: vector<Panel>
的受保护字段_panels
。Panel
,反过来,有一个受保护字段_edges
,它是类型为std :: vector<Edge>
的。Edge
最后有一个受保护字段_verts
,它是类型为std :: vector<Eigen :: Vector2f>
的。
我还有一个纯虚类Renderable
,它有一个纯虚函数virtual void render()
。 我想创建每个三个类的专门版本,这些版本都继承自 Renderable
,例如:
class VPattern : public Pattern, public Renderable
{
public:
void render() { ... }
protected:
...
private:
...
}; // class VPattern
然而,
_panels
字段仍将包含Panel
的实例,而不是VPanel
。这意味着我必须将Edge
和Panel
的绘制逻辑放在Pattern
的绘制函数中,这显然并不理想。这里是否有其他不需要这么麻烦的方法?使用包装类是否更合适?
render
版本。所以当你实现 VPattern::render() 时,你需要让它通过向量调用 Panel::render。 - Bizkit