C++ I';我在从另一个类调用main函数时遇到问题

C++ I';我在从另一个类调用main函数时遇到问题,c++,class,main,C++,Class,Main,我有一个主类,在其中我试图调用一个函数来创建菜单,但我一直遇到以下错误: 错误LNK2019:未解析的外部符号“public:static int\uu cdecl Controller::menu(void)”(?)?menu@Controller@@SAHXZ)在函数_main中引用 这是我的主课 #include "Main.h" using namespace std; int main () { Control:: menu(); return 0; } 这是主要的 #prag

我有一个主类,在其中我试图调用一个函数来创建菜单,但我一直遇到以下错误:

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

这是我的主课

#include "Main.h"

using namespace std;

int main () 
{
Control:: menu();
return 0;
}
这是主要的

#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 ();
};
我想这很简单,但我就是想不出来。我尝试移除静态函数以及将函数更改为void函数,但两者都不起作用

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

int Control::menu () 
{
  bunch of menu code
 return 0;
}
这是定义成员的正确方法

应该是

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

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

静态函数及其原型应该是这样

int Control :: menu()
{
   //bunch of menu code
   return 0 ;
}
在另一个文件中实现该类时,还必须将类名与作用域解析运算符一起使用


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

静态函数及其原型应该是这样的

int Control :: menu()
{
   //bunch of menu code
   return 0 ;
}
在另一个文件中实现该类时,还必须将类名与作用域解析运算符一起使用


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

您是否注意到
class Main:
之后有额外的冒号Main@billz我也想到了这一点。它会导致解析错误吗?您是否注意到
class Main:
之后有额外的冒号Main@billz我也想到了这一点。它会导致解析错误吗?非常感谢!工作正常。我还必须在原型中添加static。@ceeplusplus添加到定义中,你的意思是什么?非常感谢!工作正常。我还必须在原型中添加static。@ceeplusplus到定义中,你是说?