说明如下:
创建一个程序来洗牌和处理一副牌。该程序应包括类卡,类DeckOfCards和驱动程序。
Class Card应该提供: a)数据成员面对并且类型为int。 b)一个构造函数,它接收两个代表face和suit的int,并使用它们初始化数据成员。
Class DeckOfCards应包含: a)两个名为deck的卡片对象,用于存储两张卡片。 b)一个不带参数的构造函数,并初始化卡片中的两张卡片。 您可以为这两张卡片提供随机面值和适合值,但请确保它们不相同。 c)打印两张卡的printCards功能。
驱动程序应该创建一个DeckOfCards对象,并打印该对象所具有的卡片。
您需要在此项目中拥有5个文件:card.hpp,card.cpp,deckofcards.hpp,deckofcards.cpp,main.cpp
我得到的错误是:
Card.h:
#ifndef Card_H
#define Card_H
#include <string>
using namespace std;
string suits[4] = { "Hearts", "Diamonds", "Spades", "Clubs" };
string faces[12] = { "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "Jack", "Queen", "King" };
class Card {
public:
int face;
int suit;
Card(int face, int suit);
string toString();
};
#endif
Card.cpp:
#include "Card.h"
#include <iostream>
using namespace std;
Card::Card(int face, int suit) {
this->face = face;
this->suit = suit;
}
string Card::toString() {
string suitname = suits[suit];
string facename = faces[face];
return facename + " of " + suitname;
}
DeckOfCards.h:
#ifndef DeckOfCards_H
#define DeckOfCards_H
#include "Card.h"
#include <vector>
using namespace std;
class DeckOfCards {
public:
vector<Card> deck;
public:
DeckOfCards();
printCards();
};
#endif
DeckOfCards.cpp:
#include "DeckofCards.h"
#include "Card.h"
#include <iostream>
using std::cin;
using std::cout;
using std::string;
DeckOfCards::DeckOfCards() {
for (int i = 0; i<2; i++) {
Card card(i + 3, i + 5);
deck.push_back(card);
}
}
DeckOfCards::printCards() {
for (int i = 0; i<2; i++) {
cout << deck[i].toString();
}
}
main.cpp中:
#include <iostream>
#include "Card.h"
#include "DeckOfCards.h"
using namespace std;
int main() {
DeckOfCards cardDeck = new DeckOfCards();
cardDeck.printCards();
return 0;
}
答案 0 :(得分:0)
要使用std :: string类,必须包含头文件字符串,因此要将其导入相应的hpp文件,需要编写此文件
#include <string>
现在而不是总是输入std :: string,你可以添加
using std::string;
在编写课程之前