0

我有一个主类,我试图在其中调用一个函数来创建菜单,但我不断收到此错误:

错误 LNK2019:函数 _main 中引用的未解析的外部符号“public:static int __cdecl Controller::menu(void)”(?menu@Controller@@SAHXZ)

这是我的主要课程。

#include "Main.h"

using namespace std;

int main () 
{
Control:: menu();
return 0;
}

这是 Main.h

#pragma once
#include "Control.h"
class Main:
{
public:
Main(void);
~Main(void);
int main();

};

控制.h:

#pragma once
#include <iostream>

class Control
{
public:
Control(void);
~Control(void);
 static int menu ();
};

最后是控制 cpp 文件:

#include "Control.h"
using namespace std; 

static int menu () 
{
  bunch of menu code
 return 0;
}

我认为这很简单,但我就是想不通。我尝试删除静态以及将函数更改为 void 函数,但都没有奏效。

4

2 回答 2

3
static int menu () 
{
  bunch of menu code
 return 0;
}

应该

int Control::menu () 
{
  bunch of menu code
 return 0;
}

这是定义成员的正确方法。

于 2012-12-02T02:02:46.040 回答
2

带有原型的静态函数应该是这样的。

int Control :: menu()
{
   //bunch of menu code
   return 0 ;
}

当您在另一个文件中实现该类时,您还必须将类名与范围解析运算符一起使用。

您还在课程末尾有一个额外的冒号,Main导致语法错误。

于 2012-12-02T02:04:00.487 回答