【发布时间】:2010-11-26 01:59:16
【问题描述】:
我正在尝试在 C++ 中实现某种机制,从而为从公共基类派生的所有类分配一个唯一的“类 ID”。例如:
class BaseClass
{
//...
public: unsigned int GetID( void );
//...
};
class DerivedClass : public BaseClass
{
}
类 DerivedClass 和 BaseClass 的所有其他子级应该能够返回唯一标识符,而无需向 DerivedClass 添加任何额外代码……然而,C++ 让这对我来说相当困难。任何想法将不胜感激。
提前致谢! ---丹
【问题讨论】:
-
ID 应该是 int 还是可以是任何唯一类型,例如typeid 返回的那个。你的 BaseClass 是多态的吗?
-
我的基类是多态的,但由于我缺乏对伴随 RTTI 的开销的确切性质(性能和内存方面)找到可靠而彻底的解释的能力,我我试图完全避免它。