所以我試圖打印一個簡單的矢量的內容,但我得到一個奇怪的錯誤。這裏是代碼:矢量內容將不會打印
srand(time(NULL));
for (int i = 0; i < 7; i++){
AIhand[i] = deck[rand() % deck.size()];
cout << AIhand[i] << endl;
}
'甲板'是一個卡類(這是一個紙牌遊戲)的載體。 錯誤來自cout行中的第一個'< <'。 Visual Studio說「沒有操作符」< <「匹配這些操作數 - 操作數類型是:std :: ostream < < Card」。我將這個帖子作爲一個新問題發佈,因爲我已經包含了<string>
,<iostream>
和using namespace std;
,這些是人們無法打印矢量的常見問題。
據我可以告訴我的語法是正確的,但我相對較新的C++,所以它可能只是用戶錯誤。
在此先感謝!
編輯:這裏的卡類的頭文件:
#ifndef CARD_H_
#define CARD_H_
#include <string>
#include <iostream>
#include <ostream>
#include <vector>
using namespace std;
class Card {
public:
Card(string newSuit, int newValue);
string showCard();
private:
int cardValue;
string cardSuit;
};
#endif CARD_H_
這裏的卡.cpp文件:
#include "Card.h"
#include <sstream>
#include <iostream>
#include <ostream>
Card::Card(string newSuit, int newValue) {
cardValue = newValue;
cardSuit = newSuit;
}
string Card::showCard(){
stringstream card;
card << cardValue << " of " << cardSuit << endl;
return card.str();
}
這是甲板
vector<Card> deck;
for (int i = 0; i < 56; i++){
for (int j = 0; j < 14; j++) {
Card cuccos("Cuccos", j);
deck.push_back(cuccos);
}
for (int j = 0; j < 14; j++){
Card loftwings("Loftwings", j);
deck.push_back(loftwings);
}
for (int j = 0; j < 14; j++){
Card bullbos("Bullbos", j);
deck.push_back(bullbos);
}
for (int j = 0; j < 14; j++){
Card skulltulas("Skulltulas", j);
deck.push_back(skulltulas);
}
}
[C類++打印功能(可能的重複https://stackoverflow.com/questions/23239646/print- function-for-class-c) –
是否爲類** AIhand **定義了** <<操作符**? –
@ΦXocę웃Пepeúpaツ我已經在卡類中定義了ostream和iostream,AIhand矢量使用 – marina