读书人

初学者请问这段代码是什么语法

发布时间: 2012-02-21 16:26:23 作者: rapoo

菜鸟请教,这段代码是什么语法?
#define IMPLEMENT_DYNCREATE(base_class_name,class_name,class_id_type,class_id) \
XMLRuntimeClass<base_class_name,class_id_type>* class_name::GetRuntimeClass() const { return &class_name::class##class_name; }


哪位大侠能否解释一下,最后的return语句是什么意思?

[解决办法]
#define IMPLEMENT_DYNCREATE(base_class_name,class_name,class_id_type,class_id) \
XMLRuntimeClass<base_class_name,class_id_type>* class_name::GetRuntimeClass() const { return &class_name::class##class_name; }

就是一个宏定义,不要裂解得太复杂了

IMPLEMENT_DYNCREATE(CParent, CChild, DWORD, ID_CLASS) ===>

XMLRuntimeClass<CParent,DWORD>* CChilde::GetRuntimeClass() const
{
return &CChild::classCChild;
}
[解决办法]
## 表示连接
比如 #define X(a, b) a##b
然后 X(1, 2) 就得到 12, X(abc, 3) 就得到 abc3
如果没有 ## 的话 #define X(a, b) ab 无论什么 X(1, 2) 或什么结果都是 ab

读书人网 >C++

热点推荐