rtti.h
来自「介绍c++游戏编程」· C头文件 代码 · 共 41 行
H
41 行
#ifndef RTTI_H_
#define RTTI_H_
class RTTI
{
public:
RTTI(const std::string & className) :
m_className(className), m_pBaseRTTI(NULL) {}
RTTI(const std::string & className, const RTTI & baseRTTI) :
m_className(className), m_pBaseRTTI(&baseRTTI) {}
const std::string & GetClassName() const { return m_className; }
bool IsExactly(const RTTI & rtti) const { return (this == &rtti); }
bool DerivesFrom (const RTTI & rtti) const;
private:
// Prevent copying
RTTI( const RTTI & obj );
RTTI & operator=( const RTTI & obj );
const std::string m_className;
const RTTI * m_pBaseRTTI;
};
#define RTTI_DECL \
public: \
virtual const RTTI & GetRTTI() { return rtti; } \
static const RTTI rtti;
#define RTTI_IMPL_NOPARENT(name) \
const RTTI name::rtti(#name);
#define RTTI_IMPL(name,parent) \
const RTTI name::rtti(#name, parent::rtti);
#endif // _RTTI_H_
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?