出错提示term does not evaluate to a function什么意思

chinesefys2012 2011-08-24 09:17:27
出错提示term does not evaluate to a function什么意思
...全文
68165 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
vipcxj 2014-01-01
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/z72c1dfd.aspx 为啥就不会用google,baidu,msdn呢? 人家一下就举了5个例子,没有比例子更容易理解的东西了
mr三零四 2014-01-01
  • 打赏
  • 举报
回复
你也在编勒让德函数?
赵4老师 2013-10-30
  • 打赏
  • 举报
回复
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
逍遥翔傲 2013-10-30
  • 打赏
  • 举报
回复
我也遇到这个错误了,可是不明觉厉,很是痛苦,感谢分享,试试看行不行!
xiaomiehhz 2012-12-14
  • 打赏
  • 举报
回复
引用 4 楼 babilife 的回复:
贴代码~~
//编写一个函数chg,在字符串中,将其中字母大小写翻转,字符串长度不超过50。 #include<stdio.h> int main() { char str[50]; char *q; char chg(*q); gets(str); chg(str[50]); puts(str); return 0; } char chg(char str[]) { char *p=str; while(*p!='\0') { if((*p)>='a' && (*p)<='z') (*p)-=32; else if((*p)>='A' && (*p)<='Z') (*p)+=32; p++; } return 0; }
laomashitu 2011-08-24
  • 打赏
  • 举报
回复
一个没有定义为函数的表达式被当做函数来调用啦。
例如::
int i, j;
char* p;
void func()
{
j = i(); // error, i is not a function
p(); // error, p doesn't point to a function
}
这个例子里i只不过是个整数,却被当做函数来用啦,因而导致了错误!
laomashitu 2011-08-24
  • 打赏
  • 举报
回复
Compiler Error C2064
term does not evaluate to a function

A call was made to a function through an expression that did not evaluate to a function pointer.

This error is probably caused by attempting to call a nonfunction.

The following is an example of this error:

int i, j;
char* p;
void func()
{
j = i(); // error, i is not a function
p(); // error, p doesn't point to a function
}

至善者善之敌 2011-08-24
  • 打赏
  • 举报
回复
贴代码~~
ryfdizuo 2011-08-24
  • 打赏
  • 举报
回复
根据错误提示,贴出那一行的代码。
ningto.com 2011-08-24
  • 打赏
  • 举报
回复
error C2064: term does not evaluate to a function
解决 error C2064 这种错误,关键是找到它所指向的错误行里面所有调用的函数名,他们中一定至少有一个是未被定义过的。
error C2064: term does not evaluate to a function!
今天这个错误让我痛苦了30分钟!

double Legendre[30];
Vect VV;

serial_legendre(Legendre,cos(VV.th()));

解释一下,serial_legendre 是我定义的一个函数,其函数原型为
void serial_legendre(double *, double);

Vect是我定义的一个类,其中定义了成员变量th ,
看起来很简单吧?可是每次我compile的时候,就会出现错误提示:error C2064: term does not evaluate to a function! 而且这个错误指向serial_legendre(Legendre,cos(VV.th()));

哈,编译器说这一行的函数调用有问题,打眼一看,这一行似乎只调用了serial_legendre这个很明显的函数,于是我开始花大量精力检查serial_legendre是不是有问题,结果查来查去都没有发现任何问题,郁闷死了!甚至开始怀疑是不是编译器出问题了!天啊!还是基本功不扎实,我怎么就没有注意到VV.th()呢!,th是VV 的成员变量,而不是它的成员函数,所以我在th后面加了(),当然就相当于调用类的成员函数了!这就直接导致了C2064这个错误!

这个教训太深刻了,写在这里,万一哪位难友遇到了同样的麻烦,看到我的经历也许会有所启发。记住:千万别把成员变量当作成员函数一样引用。

总结:解决 error C2064 这种错误,关键是找到它所指向的错误行里面所有调用的函数名,他们中一定至少有一个是未被定义过的。

http://apps.hi.baidu.com/share/detail/15490743
luciferisnotsatan 2011-08-24
  • 打赏
  • 举报
回复
代码贴出来

65,213

社区成员

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

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