c++ - 如何将信息附加到类层次结构?

标签 c++

假设我有一个较低级别的类层次结构

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/

相关文章:

c++ - 使用最小堆的堆排序算法

c++ - 模板类中的静态函数

c++ - 编写头文件和源文件时的 VS2015 编译时错误

java - Google Protocol Buffer 和 UTF-16

c++ - 为什么不建议在空间/辐射环境中使用 C++ 模板?

c++ - 内存泄漏和代码性能

c++ - C/C++ 优化器能否决定延迟评估仅用于短路评估的值?

c++ - 如何在子类中用自定义的虚函数初始化基成员变量

python - "Symbol not found/Expected in: flat namespace"实际上是什么意思?

c++ - 未定义对 `SOIL_load_OGL_texture' 的引用?