所以我试图用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 ++也给了我一些不真实的新错误...我知道它们不是真的,因为它给我的错误的代码在添加新类之前运行正常并且我没有'改变了它。
无论如何,非常令人沮丧,希望有人可以指出我正确的方向。
答案 0 :(得分:2)
您忘记在其定义中的函数名称前指定类名。更改此代码
void::parseMove(string str, int &x, int &y){
//random junk
}
到
void MoveParser::parseMove(string str, int &x, int &y){
//random junk
}