首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-21 
菜鸟请教,这段代码是什么语法?#define IMPLEMENT_DYNCREATE(base_class_name,class_name,class_id_type,cl

菜鸟请教,这段代码是什么语法?
#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

热点排行