C++ 如何将drawnCard传递到交易函数中?

C++ 如何将drawnCard传递到交易函数中?,c++,function,C++,Function,我正在尝试将我的drawnCard(在我的drawRandomCard()函数中随机选择)传递到我的printCard()函数和deal()函数中,以便可以在这些函数中使用它。那么基本上我该怎么做呢,从一个函数传递到另一个函数的最好方法是什么,保持精确的值,在这种情况下,是一张卡片。我不确定指针是否有效谢谢 功能。cpp void Deck::createDeck() { deck.clear(); static const char suits[] = {'C','D','H','S'}; f

我正在尝试将我的drawnCard(在我的
drawRandomCard()
函数中随机选择)传递到我的
printCard()
函数和
deal()
函数中,以便可以在这些函数中使用它。那么基本上我该怎么做呢,从一个函数传递到另一个函数的最好方法是什么,保持精确的值,在这种情况下,是一张卡片。我不确定指针是否有效谢谢

功能。cpp

void Deck::createDeck() {
deck.clear();
static const char suits[] = {'C','D','H','S'};
for (int suit=0; suit < 4; suit++)
    for (int val=1; val <=13; val++)
        deck.push_back(Card(val,suits[suit]));
}

Card Deck::drawRandomCard()
{
int RandIndex=rand() % deck.size();
Card drawnCard=deck[RandIndex];
deck.erase(deck.begin()+RandIndex);
return drawnCard;

}

void Card::printCard() const { //for debugging purposes
cout << value << " of " << suit << endl;
//want to pass drawnCard here
}
void StudPoker::deal() {
//want to pass drawnCard here
}

将绘制的卡片作为参数传递给printcard。如果您不打算在printcard方法中更改卡片的内容,那么只需传递它的副本,而不是指针。将其作为参数传递,以便
printcard(drawnCard)
会显示错误,printcard声明无效,drawnCard未在此范围内声明。我在类原型中添加了它,但在我的标题中,我得到drawnCard没有命名类型错误。在这种情况下,drawnCard是什么类型?@a您可能需要类似于
printCard(const Card&drawnCard)
的东西,但您没有提供足够的上下文来解释您实际出现错误的原因。考虑编辑你的问题并给出答案。好吧,我用了你的建议。现在简单地测试printCard函数,看看输出是否是随机卡,main中的调用是什么?因为这是一个相当复杂的函数头,我不确定。
class Card{
public:
    int value;
    char suit;
    string drawnCard;
    Card(int value, char suit) : value(value), suit(suit) {}
    void printCard(drawnCard) const;

};