当你获得类声明的编译错误"看起来像一个函数定义"时,它意味着什么?

Tim*_*ing 15 c++ visual-studio

我最近遇到了这个问题.我发现很多人都在问这个问题- 例如,这里 - 但没有具体答案.

以下是该链接提升的示例代码:

class AFX_BASE_APPLICATION_APP_CLASS CFileExtension 
{
public:
   CFileExtension ();           
   virtual ~CFileExtension ();
};
Run Code Online (Sandbox Code Playgroud)

这会产生的错误是:

c:\FileExtension.h(14) : error C2470: 'CFileExtension' : looks like a function definition, but there is no formal parameter list; skipping apparent body

pax*_*blo 38

你几乎肯定错过了定义的标题AFX_BASE_APPLICATION_APP_CLASS.在这种情况下,它将通过未改变的传递,VC++将假定这CFileExtension是一个返回的函数class AFX_BASE_APPLICATION_APP_CLASS.

而且,既然它认为它是一个功能,它也认为它需要括号.

您只需要找到AFX_BASE_APPLICATION_APP_CLASS定义的位置和#include该文件.


Pra*_*mod 6

我遇到了相同的编译器错误.问题是缺少结肠

我的代码是这样的:

int MyClass:doSomething() {

}
Run Code Online (Sandbox Code Playgroud)

应该是:(注意'::'而不是':'

int MyClass::doSomething() {

}
Run Code Online (Sandbox Code Playgroud)