У меня есть класс игрока, который содержит переменную экземпляра: \Вектор неизвестен размер
vector<Card> userCards;
Для того, чтобы избежать каких-либо ошибок компиляции я жду заявленным класс Card
. Однако сейчас, когда я пытаюсь построить решение, я получаю сообщение об ошибке
Карточка *: Неизвестный размер.
В принципе я пытаюсь создать Player
, который содержит не фиксированное количество карт, поэтому я попытался с помощью вектора, и теперь я не могу заставить его работать.
Player.h
#include <iostream>
#include <vector>
using std::string;
using std::vector;
#ifndef PLAYER_H_
#define PLAYER_H_
class Card;
class Player {
private:
vector<Card> userCards;
};
#endif
Card.h
#include <iostream>
using std::string;
#ifndef CARD_H_
#define CARD_H_
class Card {
private:
string name;
string type;
public:
Card(const string& name, const string& type);
};
#endif
У меня есть куча различных функций, которые не связаны между собой, так что я не включил их.
декларация Вперед может быть использована только с указателями, а не при использовании самого типа объекта. – Barmar
@Barmar не соответствует действительности, декларации классов могут использоваться для различных целей –
@M.M По моим сведениям, Barmar прав, вы можете переслать объявление класса, но когда вы обратитесь к этому классу, он должен быть указателем или ссылкой, а не объектом сам по себе: таким образом, «Карточка» работает, но не «Карточка» –