【发布时间】:2023-03-09 10:55:01
【问题描述】:
我是函数指针的新手,希望得到您的帮助。 我有一个方法:
int test3(int i)
{
return i;
}
然后在另一种方法(不是主要)我做:
int (*pTest3)(int) = test3;
从我读过的例子来看,这似乎没问题。 但是,我得到一个编译时错误:
testFile.cpp:277:25:错误:'int 类型的参数 ({anonymous}::CheckingConsumer::)(int)' 不匹配'int (*)(int)'
我不明白出了什么问题。任何帮助将不胜感激。
非常感谢。
【问题讨论】:
-
该函数是类成员函数吗?该错误似乎表明它是......如果你想制作一个成员函数指针,它有点不同。
-
这是正确的语法,肯定还有其他事情发生。你的编译器是什么?这段代码在什么范围内(即你不能在这里使用类函数)?
-
没有错。从您的文件大小(至少 277 行)来看,可能还有其他原因导致此问题(
CheckingConsumer?)您没有在上面包含。 -
如果您的问题中可以包含一个完整但最小的示例来显示您的问题,这将很有帮助。在这里,我们必须在字里行间大量阅读才能推断出
test3确实是CheckingConsumer的成员,这使得问题比它需要的更难回答。 -
@Flexo:确切地说:真正发生的事情与 Op 的示例代码无关。
标签: c++ function-pointers pointer-to-member