クラス Room があり、次のように Option オブジェクトへの shared_ptrs のベクトルを保持します。
private:
vector<shared_ptr<Option> > options;
しかし、何らかの理由でビルドすると、次のエラーが発生します。
- 'shared_ptr': 特殊化されていないクラス テンプレートは、テンプレート パラメーター '_Ty' のテンプレート引数として使用できません。実際の型が必要です
- 'std::tr1::shared_ptr' : クラス テンプレートの使用にはテンプレート引数リストが必要です
奇妙なことに、まったく同じ構文のshared_ptrsのベクトルもありますが、それには問題はありません。
「'Option': undeclared identifier」というエラーが発生する場所もたくさんあります。これは、Option クラスに問題があるのではないかと思いますが、問題ないようです。オプションのコードは次のとおりです。
Option.h:
#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();
};
Option.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;
}