C++ “Objet” de la classe
En Java, il existe une classe générique appelé "Objet", dans lequel toutes les classes sont une sous-classe de. Je suis en train de faire une liste liée de la bibliothèque (pour un projet d'école), et j'ai réussi à le faire fonctionner pour un seul type, mais pas plusieurs, donc, il y a quelque chose de semblable à cela?
EDIT: je poste le code, mais je ne l'ai pas sur moi en ce moment.
- En C++, vous voulez faire cela à l'aide de modèles. Si vous voulais avoir des types différents dans la même structure de données, alors vous devez utiliser l'héritage.
- Pouvez-vous poster une partie de votre code pour cela? Parlez-vous à l'aide de modèles C++ pour permettre une liste liée à un type spécifique?
- Si le C++ n'a pratique des classes comme cela, alors il ne serait pas appelé C++. 🙂
- double possible de à Partir de Java de la classe d'Objet de C++
- Honnêtement, je ne vois pas la relation entre le "générique de la classe de base" avec la "liste liée... de travail pour un seul type, mais pas plusieurs". Voulez-vous dire que vous ne voulez écrire la liste liée une fois et être capable de l'utiliser avec différents type?
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de générique de la classe de base en C++, pas de.
Vous pouvez implémenter votre propre et en tirer vos classes, mais vous devez garder collections de pointeurs (ou pointeurs intelligents) pour profiter du polymorphisme.
EDIT: Après ré-analyse de votre question, je dois souligner
std::list
.Si vous voulez une liste dans laquelle vous pouvez vous spécialiser sur plusieurs types, vous utilisez des modèles (et
std::list
est un modèle):Si vous voulez une liste qui peut contenir différents types dans un seul exemple, vous prenez la classe de base de l'approche:
Object
classe, quand vous devriez être recommander des modèles de la place.std::list
qui peut contenir plusieurs objets de différents types, commestd::list<Base*>
.std::list
lieu de ce qu'il essaie de faire, si possible. (Je reconnais qu'il pourrait ne pas correspondre à ses besoins)Puis faire une sous-classe de