这是我的卡结构头文件:
#include "stdafx.h"
enum Suits {clubs, diamonds, hearts, spades};
enum Ranks {two = 2, three, four, five, six, seven, eight, nine, ten, jack, queen, king, ace};
struct Card {
Card (Suits suit, Ranks rank);
private:
Suits suit_;
Ranks rank_;
};我在cpp:中初始化了卡成员变量
#include "stdafx.h"
#include "Card.h"
#include "Header.h"
using namespace std;
Card::Card (Suits suit, Ranks rank) : suit_(suit), rank_(rank) {}现在,我正在尝试解析一组卡片定义字符串,比如2C,3h,7s,10h函数中的。
int FileParsing(vector<Card> & v, char * FileName) {
... //omiting the details, basically open FileName, parse card definition strings
//After I finish parsing 10h, I tried to push it back
v.push_back(Card(ten, hearts)); //got an error here
...
return 0;
}我的怀疑是卡片中的类型冲突(套装,等级),但我不确定。任何输入都将不胜感激!
发布于 2013-02-16 21:52:51
v.push_back(Card(ten, hearts)); //got an error here 难道这不是
v.push_back(Card(hearts, ten));发布于 2013-02-16 21:53:14
你的构造师要适应,然后排名。
Card::Card (Suits suit, Ranks rank) : suit_(suit), rank_(rank) {}在这里创建参数时,参数是向后的。
v.push_back(Card(hearts, ten));发布于 2013-02-16 21:53:19
v.push_back(Card(ten, hearts)); //got an error here应写为:
v.push_back(Card(hearts, ten)); //fixed因为Card的第一个参数应该是Suits,第二个参数应该是Ranks。
https://stackoverflow.com/questions/14915500
复制相似问题