编译出现错误:illegal call of non-static member function

Shadow_7 2011-05-04 11:01:25
函数的声明是这样的:int IWM::Load_Patterns(const vector<string> x)
我在main函数里面
char keyword[MAXPAT];
vector<string> ivec; //储存数据
cout<<"输入关键字:"<<endl;
while(cin>>keyword)
ivec.push_back(keyword); //依次储存
IWM::Load_Patterns(ivec);

我是这样直接调用的,我上网查了,说不是静态函数不能直接调用,要通过对象来调用函数。
那具体是应该怎样调用啊?求正解~
...全文
186 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljt3969636 2011-05-04
  • 打赏
  • 举报
回复
完全可以,只要不是private函数。如果是的话通过对象或者直接IWM::Load_Patterns(ivec);都不可以
满衣兄 2011-05-04
  • 打赏
  • 举报
回复
static int Load_Patterns(const vector<string> x);
或者
IWM ttt;
ttt.Load_Patterns(ivec);
pengzhixi 2011-05-04
  • 打赏
  • 举报
回复
IWM obj;
obj.Load_Patterns(ivec);
bdmh 2011-05-04
  • 打赏
  • 举报
回复
Load_Patterns,不是静态函数吧,所以你使用时,应该通过IWM的实例去访问

64,637

社区成员

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

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