0

メニューを作成するために関数を呼び出そうとしているメインクラスがありますが、次のエラーが発生し続けます。

エラーLNK2019:未解決の外部シンボル "public:static int __cdecl Controller :: menu(void)"(?menu @ Controller @@ SAHXZ)が関数_mainで参照されています

これが私のメインクラスです。

#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;
}

簡単なことだと思いますが、理解できません。staticを削除し、関数を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 に答える