Изменение класса из массива на использование векторов

#ifndef HAND_H
#define HAND_H
#include <string>
#include "card.h"#include <vector>
using namespace std;

class Hand
{
public:
Hand();
//Hand(int s);
//Hand(int s, Card myH[]);
void dealCard(int loc, Card c);
int size();
Card getCard(int i);
void setCardEqual(Card mH[],Card mH2[],int where);
bool isAloud(Card a,Card b);
void setCard(Card a, int pos);
void blankCard(int pos);
// string toString();private:
int handSize;
//Card *myHand;

vector<Card> myHand;

};
#endif#include "hand.h"
Hand::Hand()
{
handSize=7;
vector<Card> myHand;
for (int i = 0; i < handSize; i++)
{
Card c;
myHand[i] = c;
}

}

//  Hand::Hand(int s)
//     {
//          handSize = s;
//          myHand = new Card<Card>;
//          for (int i = 0; i < handSize; i++)
//          {
//              Card c;
//              myHand[i] = c;
//          }
//     }
//Hand::Hand(int s, Card myH[])
//{
//     handSize = s;
//     myHand = new Card[handSize];
//     for (int i = 0; i < handSize; i++)
//     {
//        myHand[i] = myH[i];
//     }
//}

int Hand::size()
{
return myHand.size();
}

void Hand::dealCard(int loc, Card c)
{
if (loc < myHand.size())
myHand.push_back(c);
}
Card Hand::getCard(int i)
{
Card a=myHand[i];
return a;
}
bool Hand::isAloud(Card a,Card b)
{
bool aloud=false;

if(a.getColor()==b.getColor()|| a.getValue()==b.getValue()|| a.getValue()==-1)
{
aloud=true;
}
else
{
aloud=false;
}
return aloud;

}
void Hand::setCard(Card a, int pos)
{
myHand[pos]=a;
}
void Hand::blankCard(int pos)
{
myHand[pos].setBlank();
}

Проблема в том, что в нем есть ошибки компоновщика, и я не очень понимаю, можно ли возвращать векторы в качестве методов.
Я могу предоставить вам весь класс по запросу. Я просто застрял на этой части, и тогда я должен быть в порядке.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]