[英]Error: vector does not name a type
我的最終項目(撲克和黑色插孔卡片)中有很多錯誤。 我正在使用向量來實現blackJack類中的“hands”,我正在使用在另一個類中聲明的結構化數據類型,這是公開繼承的。 我擔心的錯誤是我正在使用的編譯器告訴我,我沒有在向量中聲明一個類型。
blackJack頭文件:
#ifndef BLACKJACK_H
#define BLACKJACK_H
#include <vector>
#include "card.h"
class blackJack: public cards
{
private:
vector <Acard> playerHand;
vector <Acard> dealerHand;
public:
blackJack();
void dealHands();
void hitOrStay();
void dealerHit();
int handleReward(int);
void printHands();
};
#endif
卡頭文件(這是黑傑克繼承的類):
#ifndef CARD_H
#define CARD_H
const char club[] = "\xe2\x99\xa3";
const char heart[] = "\xe2\x99\xa5";
const char spade[] = "\xe2\x99\xa0";
const char diamond[] = "\xe2\x99\xa6";
//structured data to hold card information
//including:
// a number, representing Ace-King (aces low)
//a character, representing the card's suit
struct Acard
{
int number;
char pic[4];
};
// a class to hold information regarding a deck of cards
//including:
//An array of 52 Acard datatypes, representing our Deck
//an index to the next card in the array
//a constructor initializing the array indices to Ace-king in each suit
//a function using random numbers to shuffle our deck of cards
//13 void functions to print each card
class cards
{
private:
Acard Deck[52];
int NextCard;
public:
cards();
Acard getCard();
void shuffleDeck();
void cardAce(char[]);
void cardTwo(char[]);
void cardThree(char[]);
void cardFour(char[]);
void cardFive(char[]);
void cardSix(char[]);
void cardSeven(char[]);
void cardEight(char[]);
void cardNine(char[]);
void cardTen(char[]);
void cardJack(char[]);
void cardQueen(char[]);
void cardKing(char[]);
};
#endif
您忘了將std::
namespace前綴添加到vector
類名稱。
采用:
std::vector <Acard> playerHand;
到處都有資格通過std::
或做:
using std::vector;
在你的cpp文件中。
你必須這樣做,因為vector
是在std
命名空間中定義的,你不告訴你的程序在std
命名空間中找到它,你需要告訴它。
您需要使用其命名空間( std
)限定vector
,或者在CPP文件的頂部導入命名空間:
using namespace std;
您還可以在標題中添加#include<vector>
。 當上述兩種解決方案不起作用時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.