将成对向量与用户定义的 class 对象一起使用
Using vector of pairs with user-defined class objects
我正在尝试编写一个棋盘游戏程序(使用 C++)。我有 2 个 classes,分别叫做 Move
和 Board
。在我的 Board
构造函数中,我使用了 pair<char, Move>
。它似乎无法识别 class Move
,即使我在头文件中 #include
它也是如此。我收到错误消息:"missing ',' before identifier 'coord' " 和“'coord':未声明的标识符”。这是我的代码:
Move.h:
#include <utility>
#include <vector>
using namespace std;
class Move{
private:
pair<int,int> coordinates;
public:
Move(int,int);
};
Move.cpp:
#include "Move.h"
Move::Move(int x, int y){
coordinates.first = x;
coordinates.second = y;
}
Board.h:
#include "Move.h"
class Board{
private:
vector<pair<char, Move> > board_state;
public:
Board(vector<pair<char, Move> >);
};
Board.cpp:
#include "Board.h"
Board::Board(vector<pair<char P, Move coord> > state){
board_state = state;
}
pair
的模板参数只能是类型。所以 vector<pair<char P, Move coord>>
应该读作 vector<pair<char, Move>>
.
我正在尝试编写一个棋盘游戏程序(使用 C++)。我有 2 个 classes,分别叫做 Move
和 Board
。在我的 Board
构造函数中,我使用了 pair<char, Move>
。它似乎无法识别 class Move
,即使我在头文件中 #include
它也是如此。我收到错误消息:"missing ',' before identifier 'coord' " 和“'coord':未声明的标识符”。这是我的代码:
Move.h:
#include <utility>
#include <vector>
using namespace std;
class Move{
private:
pair<int,int> coordinates;
public:
Move(int,int);
};
Move.cpp:
#include "Move.h"
Move::Move(int x, int y){
coordinates.first = x;
coordinates.second = y;
}
Board.h:
#include "Move.h"
class Board{
private:
vector<pair<char, Move> > board_state;
public:
Board(vector<pair<char, Move> >);
};
Board.cpp:
#include "Board.h"
Board::Board(vector<pair<char P, Move coord> > state){
board_state = state;
}
pair
的模板参数只能是类型。所以 vector<pair<char P, Move coord>>
应该读作 vector<pair<char, Move>>
.