函数不是全局命名空间的成员

function is not a member of global namespace

本文关键字:成员 命名空间 全局 函数      更新时间:2023-10-16

所以我正在尝试用C++编程国际象棋,我决定让我的移动处理程序成为它自己的类(它以前是一个主函数),这样我就可以在我的其他一些类中使用它,而不必到处复制它。

但是,当我完成所有设置时,出现此错误:"parseMove":不是"全局命名空间"的成员

我正在使用标准命名空间和所有公共函数和变量,我知道这一点,所以除非相关,否则请不要提出它。我的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
}

而且视觉C++也给了我一些不真实的新错误......我知道它们不是真实的,因为它给我错误的代码在我添加新类之前运行良好,我没有更改它。

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

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

void::parseMove(string str, int &x, int &y){
//random junk
}

void MoveParser::parseMove(string str, int &x, int &y){
//random junk
}