假设我有一个较低级别的类层次结构
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.
谢谢。
最佳答案
在 GUI 级别创建一个 map ,该 map 将具有键的类和值的图标。 Icon属于GUI,很可能与class本身无关。
关于c++ - 如何将信息附加到类层次结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18064039/