我有一个主要类,我试图调用一个函数来创建菜单,但我一直收到这个错误:
错误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();
};
Control.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函数,但都没有工作。
答案 0 :(得分:3)
static int menu ()
{
bunch of menu code
return 0;
}
应该是
int Control::menu ()
{
bunch of menu code
return 0;
}
这是定义成员的正确方法。
答案 1 :(得分:2)
静态函数及其原型应该是这样的。
int Control :: menu()
{
//bunch of menu code
return 0 ;
}
当您在另一个文件中实现该类时,您还必须使用具有范围分辨率运算符的类名。
您在课程Main
的末尾也有一个额外的冒号,导致语法错误。