【发布时间】:2018-01-21 01:08:17
【问题描述】:
考虑以下多态情况:
class Shape {
public:
Shape();
virtual void draw() = 0;
virtual ~Shape();
}
class Triangle : public Shape {
public:
Triangle();
void draw();
~Triangle();
}
class Square : public Shape {
public:
Square();
void draw();
~Square();
}
class Circle : public Shape {
public:
Circle();
void draw();
~Circle();
}
class Container {
public:
void addShape(string type); //Create and add instance of selected type to render_list
void render(); //iterate through render_list and draw() each object
private:
vector<Shape*> render_list;
}
如果调度程序快速调用 render() 方法:这是实现异构集合的好方法吗?
使用 vtable 会不会影响性能?
有没有其他选择?
最好的,
路易斯
【问题讨论】:
标签: c++ dynamic polymorphism heterogeneous