Поэтому я пытаюсь программировать шахматы на 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
}
Кроме того, Visual C ++ дает мне некоторые новые ошибки, которые не являются реальными … и я знаю, что они не являются реальными, потому что код, который он дает мне ошибки, работал нормально, прежде чем я добавил новый класс, и я не изменил его ,
В любом случае, очень расстраивает, надеюсь, кто-то может направить меня в правильном направлении.
Вы забыли указать имя класса перед именем функции в его определении. Изменить этот код
void::parseMove(string str, int &x, int &y){
//random junk
}
в
void MoveParser::parseMove(string str, int &x, int &y){
//random junk
}
Других решений пока нет …