正如标题所示,我正在尝试将矢量从一个类发送到另一个类。这是一些示例代码...
class Deck
{
public:
//constructor
Deck(){}
~Deck(){} //deconstructor
//global for setting deck size
int SetDeckMultiplier;
//Card SetUp
//access vector
std::vector<int> GetCopyOfVector(){return cards;}
//set deck size based on multiplier
void SetDeckSize();
//shuffle card vector
void shuffle();
//End Card Setup
protected:
private:
std::vector <int> cards;
};
这实质上是建立一个向量,用整数填充它,而不是对整数进行洗牌。
我有第二节课...
class Dealer: public Deck
{
public:
void Hit();
void GetStoredDeck()
{
std::cout << cards.size() << std::endl;
}
void DealCard();
void DealerScore();
void IniDeal();
void CardPositions();
private:
};
我正在尝试将向量拉入此类,以便经销商可以使用整数。我可以使向量受到保护,但 .size() 为 0。在第一堂课中填充和洗牌后,有没有办法将它传递给这个类?
编辑:
对于类中的函数,我没有太多代码。我只是在做一个骨架设置。
甲板.cpp
void Deck::SetDeckSize()
{
for (int i = 0; i < (52 * SetDeckMultiplier); i++)
{
cards.push_back(i);
}
//set card values
for (int i = 0; i > (52 * SetDeckMultiplier); i++)
{
cards[i] = i;
}
}
void Deck::shuffle()
{
for (int i = 0; i < (52 * SetDeckMultiplier); i++)
{
int r = i + (rand() % ((52 * SetDeckMultiplier) - i)); // Random remaining position.
int temp = cards[i]; cards[i] = cards[r]; cards[r] = temp; //swap cards
while (cards[i] >= 52) cards[i] = cards[i] - 52; //loop to ensure correct number for display
//std::cout << cards[i] << std::endl;//display random cards.. for now
}
}
这是我必须填充向量并随机播放元素的代码。
我想采用洗牌向量并在经销商类中使用它。这样,荷官就可以得到向量中的下一个元素,并用它做需要做的事情。
我所说的 size() 是,如果我使向量受保护而不是私有,我可以通过继承使用向量,但它是空向量而不是填充和洗牌的向量。