什么情况下会出非法调用非静态成员函数的错误

illegalcallofnon-staticmemberfunction在一个线程函数中调用非静态成员函数可以吗如下DWORDWINAPICServerDlg::Rec... illegal call of non-static member function

在一个线程函数中调用非静态成员函数可以吗 如下
DWORD WINAPI CServerDlg::RecvProc(LPVOID lpParameter)
{
member_fun();
}
展开
 我来答
静静的世界34
2015-07-22 · TA获得超过1371个赞
知道小有建树答主
回答量:847
采纳率:91%
帮助的人:373万
展开全部
1 静态成员函数相当于全局函数,只有一个类名字空间的限制。静态成员函数是类的函数,无需指明是某个实例对象在操作,既可以是类在调用其静态成员函数也可以是其实例对象来调用。注:静态成员函数只能访问静态成员变量和静态成员函数。

2 类成员函数式成员内部的函数,同一个类的对象实例有很多,每一个实例都有自己不同的成员变量值。每个实例通过成员函数来操作其成员变量。所以成员函数的调用必须明确的指出是哪一个实例对象在操作。注:类成员函数当然也可以访问静态成员变量或者静态成员函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
gis19831203
2008-03-20 · TA获得超过690个赞
知道小有建树答主
回答量:914
采纳率:0%
帮助的人:835万
展开全部
静态成员函数只能调用类的静态成员函数.如果你想你上面的代码顺利执行就应该这样:

在CServerDlg中创建线程
CreateThread(NULL, 0, RecvProc, this, ...);
DWORD WINAPI CServerDlg::RecvProc(LPVOID lpParameter)
{
CServerDlg* pDlg = (CServerDlg*)lpParameter;
pDlg->member_fun();
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式