假设我有一个较低的水平如何将信息附加到类层次结构?
class A {...};
class A0 : public A {...};
class A1 : public A {...};
class A2 : public A {...};
类层次结构,我要代表它像图标的GUI级别较高的水平,这可能很容易在这些类中添加一个虚拟方法
virtual Icon A::icon() {return iconOfA;}
virtual Icon A0::icon() {return iconOfA0;}
virtual Icon A1::icon() {return iconOfA1;}
virtual Icon A2::icon() {return iconOfA2;}
但是,我不想改变低级别的类,任何简单的方法来实现它?我希望能动态地使用它,就像
A* a = new A2();
getIcon(a); // will return iconOfA2.
谢谢。
在基类A中声明'icon'作为虚函数。并且geticon获取基类指针或引用,并调用该基类变量上的图标。 –
这就是我不想要的问题,如我的问题所示。 – user1899020
这需要重写派生类中的图标()OP要避免的操作 – 4pie0