J'essaye de construire mon premier jeu en C++ et j'essaye de faire un système Inventory
qui me permettra de gérer et arranger différents types de données Item
dans un type de conteneur Inventory
. Dans le code ci-dessous je n'ai fait que les déclarations de classe, mais je voulais savoir comment faire la classe "Item" que j'ai fait contenir un type de données de l'un des différents éléments hérités tels que Weapon
, Apparel
, et Aid
. Serait-ce aussi simple que d'utiliser un paramètre template
? Si oui, alors ma question est de savoir comment quelque chose comme un Constructor
comprendre ce qu'il faut faire dans chaque instance de création d'un élément? Le default Constructor
peut devoir être quelque chose comme une arme de base que je décide de mettre en place, correct? Si quelqu'un a des conseils ou des liens à fournir, cela serait grandement apprécié.Comment faire un type hors des classes personnalisées héritées C++
Merci!
ITEM.H:
#ifndef ITEM_H
#define ITEM_H
#include <iostream>
/*************************************************
* ITEM CLASS
* *This class is the type of data to be put into
* the Inventory Container class.
**************************************************/
class Item
{
public:
private:
};
/*************************************************
* WEAPON CLASS
* *This class is a type of Item that classifies a
* weapon item that can be in an Inventory.
**************************************************/
class Weapon : public Item
{
public:
private:
};
/*************************************************
* APPAREL CLASS
* *This class is a type of Item that classifies an
* apparel item that can be in an Inventory.
**************************************************/
class Apparel : public Item
{
public:
private:
};
/*************************************************
* AID CLASS
* *This class is a type of Item that classifies an
* Aid item that can be in an Inventory.
**************************************************/
class Aid : public Item
{
public:
private:
};
#endif //ITEM_H
EDIT:
Voici ce que j'ai d'ores et déjà:
/*************************************************
* ITEM CLASS
* *This class is the type of data to be put into
* the Inventory Container class.
**************************************************/
template <class T>
class Item
{
public:
private:
T item_type; //i.e. Weapon, Apparel, Aid, etc...
};
/*****************************************************************
* ITEM : WEAPON
* *Below is the code for all the different Weapon classes.
******************************************************************/
/*************************************************
* WEAPON CLASS
* *This class is a type of Item that classifies a
* weapon item that can be in an Inventory.
**************************************************/
template <class T>
class Weapon : public Item
{
public:
private:
T weapon_type; //i.e. Melee, Ranged, etc...
};
/*************************************************
* MELEE CLASS
* *This class is a type of Item that classifies a
* melee item that will be used as a weapon.
**************************************************/
template <class T>
class Melee : public Weapon
{
public:
private:
};
/*************************************************
* RANGED CLASS
* *This class is a type of Item that classifies a
* ranged item that will be used as a weapon.
**************************************************/
template <class T>
class Ranged : public Weapon
{
public:
private:
};
AUTRE EDIT: Voici le nouveau code:
/*************************************************
* ITEM CLASS
* *This class is the type of data to be put into
* the Inventory Container class.
**************************************************/
template <class T>
class Item
{
public:
protected:
T item_type; //i.e. Weapon, Apparel, Aid, etc...
};
/*****************************************************************
* ITEM : WEAPON
* *Below is the code for all the different Weapon classes.
******************************************************************/
//WEAPON CLASS
template <class T>
class Weapon : public Item
{
public:
protected:
T weapon_type; //i.e. Melee, Ranged, etc...
};
//MELEE CLASS
template <class T>
class Melee : public Weapon
{
public:
protected:
T melee_type; //i.e. Blade, Blunt, Fist, etc...
};
//BLADE CLASS
template <class T>
class Blade : public Melee
{
public:
protected:
T blade_type; //i.e. Dagger, Sword, etc...
};
//DAGGER CLASS
template <class T>
class Dagger : public Blade
{
public:
//Default Constructor...the only Constructor
Dagger() : damage(1), weight(0.5) { }
//getters
std::string getType() const { return "Dagger"; }
protected:
int damage; //amount of damage it can inflict
float weight; //weight of the dagger
};
Je ne parle pas de la classe d'inventaire. Je veux dire pour la variable membre de la classe Item. – Tylersong55
Qu'essayez-vous de faire? – Nard
Je veux comprendre comment définir la variable membre dans 'Item' de sorte qu'elle puisse être n'importe laquelle des catégories comme Arme, habillement, etc. mais je ne suis pas sûr si un modèle sera le meilleur pour cela. Mais je ne connais pas d'autre moyen de gérer quelque chose comme ça non plus. – Tylersong55