高分急问:VC6里面的语法

环境:VC6.0首先,有一个已经定义了的类classCALCINFO{...........};在编写dll的过程中又有以下语句__declspec(dllexport)... 环境:VC6.0

首先,有一个已经定义了的类
class CALCINFO
{
...........
};

在编写dll的过程中又有以下语句

__declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)
{
if ( pData->m_pfParam1 && //参数1有效
pData->m_nParam1Start<0 && //参数1为常数
pData->m_pfParam2==NULL ) //仅有一个参数
{
float fParam = *pData->m_pfParam1;
其他语句略

我的问题:请看上面提到的两句
pData->m_pfParam1;
*pData->m_pfParam1;

pData不是一个类的指针吗,如果要通过指针使用类里面的东西,那不是应该用*pData->xxx或者*pData.xxx这样的格式吗?
为什么会有pData->m_pfParam1;这种句子?为什么不加*

请详细解释。必加分
谢谢提供帮助的朋友
展开
 我来答
无尽星空ljm
2010-07-21 · TA获得超过1794个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:0
展开全部
在C/C++中,用“->”来取指针指向的结构或者类实例的成员,用“.”来取结构或者类实例的成员,“*”用来取指针指向的内容(在你这也就是结构实例)。
所以要用“pData->m_pfParam1”,而不是“pData.m_pfParam1”,也不是“*pData->m_pfParam1”,但是:你可以写成“(*pData).m_pfParam1”。
你好好比较和分析一下吧。
iamxmz
2010-07-21 · 超过13用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:0
展开全部
这个地方他写错了.CALCINFO* pData是把pData定义成了CALCINFO结构体的指针,pData->m_pfParam1这样写是对的,如果是结构体指针就用->,如果是CALCINFO pData这样定义的话就要用pData.m_pfParam1这种写法.
后边的 *pData不是指针,所以*pData->m_pfParam1这种写法是错误的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhimin_cs
2010-07-21
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
楼上说的是正确的 如果是类指针就用-> 如果不是就用. 这个和C语言是一样的语法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_陆江_
2010-07-21
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
pData->m_pfParam1是一个float指针啊,所以
float fParam = *pData->m_pfParam1是正确的,相当于
float fParam = *(pData->m_pfParam1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式