function不是全局命名空间的成员

时间:2014-02-18 00:38:26

标签: c++ namespaces chess

所以我试图用C ++编写国际象棋,我决定让我的移动处理程序成为自己的类(之前它是一个主函数),所以我可以在其他一些类中使用它,而不必在任何地方复制它。

然而,当我完成所有设置后,我收到了这个错误:'parseMove':不是'`global namespace''的成员

我正在使用标准命名空间和所有公共函数和变量,我知道所以请不要提出它,除非它是相关的。我的IDE是MS Visual C ++ 2012。

以下是代码:

主要:

void playGame(){
      ...
MoveParser parser;      //declare move handler
      ...
//example of use
parser.parseMove(current, currentX, currentY);
      ...
}

MoveParser.h:

#pragma once
#include <sstream>
#include <iostream>
#include <string>

using namespace std;

class MoveParser
{
public:
MoveParser(void);
~MoveParser(void);

void parseMove(string, int &, int &);
};

MoveParser.cpp:

#include "MoveParser.h"


MoveParser::MoveParser(void)
{
}


MoveParser::~MoveParser(void)
{
}

void::parseMove(string str, int &x, int &y){

//random junk

}

而且Visual C ++也给了我一些不真实的新错误...我知道它们不是真的,因为它给我的错误的代码在添加新类之前运行正常并且我没有'改变了它。

无论如何,非常令人沮丧,希望有人可以指出我正确的方向。

1 个答案:

答案 0 :(得分:2)

您忘记在其定义中的函数名称前指定类名。更改此代码

void::parseMove(string str, int &x, int &y){

//random junk

}

void MoveParser::parseMove(string str, int &x, int &y){

//random junk

}