首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++没有构造函数"Card::Card“的实例与参数列表匹配

C++没有构造函数"Card::Card“的实例与参数列表匹配
EN

Stack Overflow用户
提问于 2013-02-16 21:49:24
回答 4查看 2.2K关注 0票数 0

这是我的卡结构头文件:

代码语言:javascript
复制
#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:中初始化了卡成员变量

代码语言:javascript
复制
#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函数中的

代码语言:javascript
复制
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;
}

我的怀疑是卡片中的类型冲突(套装,等级),但我不确定。任何输入都将不胜感激!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-02-16 21:52:51

代码语言:javascript
复制
v.push_back(Card(ten, hearts)); //got an error here 

难道这不是

代码语言:javascript
复制
v.push_back(Card(hearts, ten));
票数 3
EN

Stack Overflow用户

发布于 2013-02-16 21:53:14

你的构造师要适应,然后排名。

代码语言:javascript
复制
Card::Card (Suits suit, Ranks rank) : suit_(suit), rank_(rank) {}

在这里创建参数时,参数是向后的。

代码语言:javascript
复制
v.push_back(Card(hearts, ten));
票数 1
EN

Stack Overflow用户

发布于 2013-02-16 21:53:19

代码语言:javascript
复制
v.push_back(Card(ten, hearts)); //got an error here

应写为:

代码语言:javascript
复制
v.push_back(Card(hearts, ten)); //fixed

因为Card的第一个参数应该是Suits,第二个参数应该是Ranks

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14915500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档