#define RUNTIME_CLASS(class_name) ((CRuntimeClass*)(&class_name::class##class_name))
发布网友
发布时间:2022-04-30 14:38
我来回答
共2个回答
热心网友
时间:2023-10-06 05:12
这个RUNTIME_CLASS是一个宏,具体如下:
#define RUNTIME_CLASS(class_name) \
(&class_name::class##class_name)
其中##是字符连接操作,比如
you##me 相当于youme。
RUNTIME_CLASS返回的是该类的一个类对象的数据成员地址
如上:RUNTIME_CLASS(CDocument)就会返回:的成员对象的classCDocument数据成员
但具体它指什么,比较复杂,要知道详情,可以参照侯捷的《深入浅出MFC》。
希望对楼主有所帮助!
热心网友
时间:2023-10-06 05:12
你好,可以参考你的MyDoc的头文件中的DECLARE_DYNAMIC,或DECLARE_DYNCREATE宏所在的头文件中的定义,其中说明了class##class_name怎么来的。
其实就是一个静态变量。static const CRuntimeClass class##class_name;