У меня есть класс Room, и он содержит вектор shared_ptrs для объектов Option, например:
private:
vector<shared_ptr<Option> > options;
Но по какой-то причине, когда я строю, я получаю следующие ошибки:
- 'shared_ptr': неспециализированный шаблон класса нельзя использовать в качестве аргумента шаблона для параметра шаблона '_Ty', ожидается реальный тип
- 'std::tr1::shared_ptr': для использования шаблона класса требуется список аргументов шаблона.
Как ни странно, у меня также есть вектор shared_ptrs, точно такой же синтаксис, но с этим проблем нет.
Есть также куча мест, которые вызывают ошибку «'Option': необъявленный идентификатор», что заставляет меня думать, что это может быть проблема с классом Option, но, похоже, все в порядке. Вот код для опции:
Вариант.ч:
#pragma once
#include "Room.h"
#include <memory>
using namespace std;
class Option
{
protected:
int id;
char* text;
public:
Option(void);
Option(int, char*);
virtual ~Option(void);
char* getText();
int getID();
};
Опция.cpp:
#include "Option.h"
#include "Room.h"
#include <memory>
using namespace std;
Option::Option(void)
{
}
Option::Option(int newID, char* newText){
id = newID;
text = newText;
}
Option::~Option(void)
{
}
char* Option::getText(){
return text;
}
int Option::getID(){
return id;
}