error C2352 : 非静态成员函数的非法调用

xrqrenqiang 2016-11-16 09:54:58
首先,我在头文件myApp.h文件声明。
class myApp:public vpApp
{
public:
myApp(void);

~myApp(void);

virtual void run(void);
};

然后在myApp.cpp文件中对void run函数进行具体定义并调用。
void myApp::run()
{

float stu[3][100]; //SIZE为数据的个数
int i;
FILE *fp;

fp = fopen("afile.txt", "rt");
for(i=0;i<100;i++)
{
fscanf(fp,"%f ","%f","%f",stu[0]+i,stu[1]+i,stu[2]+i);
vuVec3<double> m_xyz;
m_xyz[0]=stu[0][i];
m_xyz[1]=stu[1][i];
m_xyz[2]=stu[2][i];

vpObject* pObject_f16 = new vpObject();
pObject_f16->setTranslate(m_xyz[0], m_xyz[1], m_xyz[2] );
pObject_f16->setRotate(0.0f, 0.0f, 0.0f );
}
fclose(fp);
}

void main()
{
while(1)
{
run();
....
}
}

在循环体中调用run()时出现错误:error C2352: “myApp::run” : 非静态成员函数的非法调用
请问我的问题出在哪里?谢谢。
...全文
1519 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xrqrenqiang 2016-11-18
  • 打赏
  • 举报
回复
引用 2 楼 shihengzhen101 的回复:
run
是一个成员函数,需要使用对象来调用 像这样

myApp app;
app.run(); 
谢谢
xrqrenqiang 2016-11-18
  • 打赏
  • 举报
回复
引用 1 楼 paschen 的回复:
你的run是个非静态成员函数,需要用一个对象来调用 比如 myApp a; a.run();
好的,谢谢
AlbertS 2016-11-17
  • 打赏
  • 举报
回复
run
是一个成员函数,需要使用对象来调用 像这样

myApp app;
app.run(); 
paschen 版主 2016-11-16
  • 打赏
  • 举报
回复
你的run是个非静态成员函数,需要用一个对象来调用 比如 myApp a; a.run();

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧