⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_67180.htm

📁 vc
💻 HTM
字号:
<p>
序号:67180 发表者:勇敢的问 发表日期:2003-12-30 08:03:48
<br>主题:语句 CObject *(PASCAL * m_pfnCreateObject)() 怎么理解?
<br>内容:CObject *(PASCAL * m_pfnCreateObject)()<BR><BR>我只知道m_pfnCreateObject是一指针怎么有两个*,PASCAL是指什么?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:michael 回复日期:2003-12-30 08:43:32
<br>内容:&nbsp;&nbsp;&nbsp;&nbsp;CObject *(PASCAL * m_pfnCreateObject)()返回的是指向类的默认构造函数的指针。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;PASCAL 是用来指定调用约定的。学过汇编的人都知道,堆栈的特点是后进先出。在用汇变调用函数时首先要把参数压栈,然后跳转到函数的代码处再把参数出栈。当函数的参数大于一时,就带来了参数压栈顺序的问题。C、C++是凑右向左压栈,出栈时参数顺序就变成从左向右的了。但是pascal的顺序正相反。现在已经被WINAPI宏代替了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:勇敢的问 回复日期:2003-12-30 08:47:17
<br>内容:怎么有两个*?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:勇敢的问 回复日期:2003-12-30 08:52:46
<br>内容:整句话是定义了一个叫m_pfnCreateObject的函数指针,这个函数不需要参数,返回一个CObject * 类型的变量,调用方式是PASCAL。<BR>对吗?<BR><BR><BR>返回的CObject * 类型的变量也是一个指针了?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:michael 回复日期:2003-12-30 09:02:51
<br>内容:m_pfnCreateObject是指向动态创建对象的构造函数指针。<BR>* m_pfnCreateObject 就是那个构造函数。<BR>CObject *是把类的类型转换成所有类的基类CObject类型。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -