【问题标题】:Error C3867 in visual c++Visual C++ 中的错误 C3867
【发布时间】: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

请给我一个解决方案

【问题讨论】:

  • 欢迎来到 StackOverflow。如果您没有向我们提供足够的信息,我们将无法为您提供帮助。
  • 您忘记发布您的代码...
  • 在您至少提供问题的基本描述之前,没有人可以为您提供有意义的“解决方案”。如果没有适当的上下文,您发布的错误消息完全没有意义。

标签: c++ member-function-pointers


【解决方案1】:

根据documentation:-

您试图获取成员函数的地址,但未使用其类名和地址运算符限定成员函数。

你必须使用 :: 来限定函数名和类名以消除错误:-

你应该这样做:-

    &className::func1

而不是

    &func1 

但是,由于您是初学者,我想您可能忘记为函数调用提供参数。

【讨论】:

  • 是什么让您决定 OP 首先要获取成员函数的地址?
  • @AndreyT 查看文档链接。根据 OP 提供的信息,我们只能大致猜测 OP 想要做什么。
  • 链接中的文档适用于错误 C3867,这是编译器对 OP 试图做什么的猜测。这个编译器的猜测很可能完全不符合要求。我的猜测是 OP 只是忘记在成员函数调用中指定参数,并且编译器严重误解了这种情况。 IE。它根本与任何成员函数指针无关。
  • @AndreyT 我也猜到了同样的结果,但随后编译器的猜测随之而来。无论如何编辑了我的答案以包括那个案例。
猜你喜欢
  • 2011-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-18
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多