Visual C++ 中的错误 C3867
Posted
技术标签:
【中文标题】Visual C++ 中的错误 C3867【英文标题】:Error C3867 in visual c++ 【发布时间】:2014-01-29 18:27:46 【问题描述】:我是编程初学者....
当我尝试使用 Visual c++ 2012 编译此代码时,出现以下错误。
1>e:\item(2).cpp(158): error C3867: 'selection::option': function call missing argument list; use '&selection::option' to create a pointer to member
请给我一个解决方案
【问题讨论】:
欢迎来到 ***。如果您没有向我们提供足够的信息,我们将无法为您提供帮助。 您忘记发布您的代码... 在您至少提供问题的基本描述之前,没有人可以为您提供有意义的“解决方案”。如果没有适当的上下文,您发布的错误消息完全没有意义。 【参考方案1】:根据documentation:-
您试图获取成员函数的地址,但未使用其类名和地址运算符限定成员函数。
你必须使用 ::
来限定函数名和类名以消除错误:-
你应该这样做:-
&className::func1
而不是
&func1
但是,由于您是初学者,我想您可能忘记为函数调用提供参数。
【讨论】:
是什么让您决定 OP 首先要获取成员函数的地址? @AndreyT 查看文档链接。根据 OP 提供的信息,我们只能大致猜测 OP 想要做什么。 链接中的文档适用于错误 C3867,这是编译器对 OP 试图做什么的猜测。这个编译器的猜测很可能完全不符合要求。我的猜测是 OP 只是忘记在成员函数调用中指定参数,并且编译器严重误解了这种情况。 IE。它根本与任何成员函数指针无关。 @AndreyT 我也猜到了同样的结果,但随后编译器的猜测随之而来。无论如何编辑了我的答案以包括那个案例。以上是关于Visual C++ 中的错误 C3867的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studios 2008 中 C++ 开发中的链接错误
Visual Studio C++ 社区 2017 中的构建错误
Visual C++ 中的 Hello World 程序给出错误
Microsoft Visual C++ 中的 SFINAE constexpr 错误