什么情况下会出非法调用非静态成员函数的错误
illegalcallofnon-staticmemberfunction在一个线程函数中调用非静态成员函数可以吗如下DWORDWINAPICServerDlg::Rec...
illegal call of non-static member function
在一个线程函数中调用非静态成员函数可以吗 如下
DWORD WINAPI CServerDlg::RecvProc(LPVOID lpParameter)
{
member_fun();
} 展开
在一个线程函数中调用非静态成员函数可以吗 如下
DWORD WINAPI CServerDlg::RecvProc(LPVOID lpParameter)
{
member_fun();
} 展开
2个回答
展开全部
1 静态成员函数相当于全局函数,只有一个类名字空间的限制。静态成员函数是类的函数,无需指明是某个实例对象在操作,既可以是类在调用其静态成员函数也可以是其实例对象来调用。注:静态成员函数只能访问静态成员变量和静态成员函数。
2 类成员函数式成员内部的函数,同一个类的对象实例有很多,每一个实例都有自己不同的成员变量值。每个实例通过成员函数来操作其成员变量。所以成员函数的调用必须明确的指出是哪一个实例对象在操作。注:类成员函数当然也可以访问静态成员变量或者静态成员函数。
2 类成员函数式成员内部的函数,同一个类的对象实例有很多,每一个实例都有自己不同的成员变量值。每个实例通过成员函数来操作其成员变量。所以成员函数的调用必须明确的指出是哪一个实例对象在操作。注:类成员函数当然也可以访问静态成员变量或者静态成员函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
展开全部
静态成员函数只能调用类的静态成员函数.如果你想你上面的代码顺利执行就应该这样:
在CServerDlg中创建线程
CreateThread(NULL, 0, RecvProc, this, ...);
DWORD WINAPI CServerDlg::RecvProc(LPVOID lpParameter)
{
CServerDlg* pDlg = (CServerDlg*)lpParameter;
pDlg->member_fun();
}
在CServerDlg中创建线程
CreateThread(NULL, 0, RecvProc, this, ...);
DWORD WINAPI CServerDlg::RecvProc(LPVOID lpParameter)
{
CServerDlg* pDlg = (CServerDlg*)lpParameter;
pDlg->member_fun();
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询