Итак, я хочу проверить, является ли мой объект зельем или оружием. Как мне сделать это с typeid (т.е. или что-нибудь в этом отношении)??
Затем я хочу создать экземпляр объекта на основе этого условия. Я не могу просто сказать T temp, потому что это создаст экземпляр абстрактного базового класса (т. е. мой класс Item имеет в себе чистую виртуальную функцию).
template <typename T>
void List<T>::Load(std::ifstream & file)
{
//Read the number of elements
file.read(reinterpret_cast<char *>(&mNumberOfNodes), sizeof(int));
//Insert nodes into list
//If object is a potion
//T * temp = new Potion;
//If object is a weapon
//T * temp = new Weapon;
for( int i = 0; i < mNumberOfNodes; i++ )
{
temp->Load(file);
this->PushFront(&temp);
mNumberOfNodes--;
mNumberOfNodes--;
}
}
std::function
. - person kfsone   schedule 28.05.2013