| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 693 人关注过本帖
标题:CRuntimeClass类中语法问题
只看楼主 加入收藏
bai_cai_101
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2009-10-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
CRuntimeClass类中语法问题
以下为CRuntimeClass类在MSDN中的说明文件内容

CRuntimeClass
CRuntimeClass is a structure you can use to obtain information about an object or its base class at run time. The ability to determine the class of an object at run time is useful when extra type checking of function arguments is needed, or when you must write special-purpose code based on the class of an object. Each class derived from CObject is associated with a CRuntimeClass structure.

Syntax
struct CRuntimeClass
{
LPCSTR m_lpszClassName;
int m_nObjectSize;
UINT m_wSchema
CObject* (PASCAL* m_pfnCreateObject)( );
CRuntimeClass* (PASCAL* m_pfnGetBaseClass)( );
CRuntimeClass* m_pBaseClass;
CObject* CreateObject( );
BOOL IsDerivedFrom(const CRuntimeClass* pBaseClass) const;
};

在此类定义中有一个CObject* 类指针变量,但是我看不懂的是这个类指针变量后面的内容:(PASCAL* m_pfnCreateObject)( ); 这样的定义描述我在C++程序语言设计教程中找不到任何类似的说明,它在C++中是什么样的语法结构?它表示什么意思? 类似的如:CRuntimeClass* (PASCAL* m_pfnGetBaseClass)( );BOOL IsDerivedFrom(const CRuntimeClass* pBaseClass) const;
第一.CObject表示前面定义的类,CObject* 表示定义一个指向CObject类对象的指针,但后面的两个圆括号分别代表什么意义?m_pfnCreateObject是指什么? 最后一列中出现两个const表示什么意义?
     请哪位高手给予帮助,多谢了!




搜索更多相关主题的帖子: 语法 
2009-10-09 12:10
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:20 
m_pfnCreateObject是函数指针,从字面意思看,应该是一个创建Object对象的函数。(fn是函数的意思),我想它应该是返回一个Object的指针。
CObject* (PASCAL* m_pfnCreateObject)( );的意思是声明一个类型为PASCAL的函数指针,它的参数是void,它的返回值是CObject*
类型PASCAL的含义 PASCAL==CALLBACK==WINAPI==__stdcall
类型PASCAL的含义: _stdcall是Pascal程序的缺省调用方式,通常用于Win32  Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数。
2009-10-09 18:12
yidong0635
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-9-6
收藏
得分:0 
新手不懂
2009-10-12 22:00
快速回复:CRuntimeClass类中语法问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016959 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved