Donc, j'utilise std :: map comme tableau associatif. La carte est déclarée en tant que telle:Utilisation d'une table std :: map en tant que tableau associatif
std::map<int, CustomClass*> CustomContainer;
Plus tard, j'utilise l'objet CustomContainer comme un tableau associatif, par exemple,
CustomClass* pClass = CustomContainer[ID]
déclare Josuttis:
Si vous utilisez une clé comme l'index, pour lequel aucun élément n'existe encore, un nouvel élément est automatiquement inséré dans la carte. La valeur du nouvel élément est initialisée par le constructeur par défaut de son type. Ainsi, pour utiliser cette fonctionnalité, vous ne pouvez pas utiliser un type de valeur sans constructeur par défaut.
La valeur de la carte est de type CustomClass *. La valeur par défaut sera-t-elle NULL ou est-elle indéfinie? (Je pense que ce ne serait pas le cas, car "pointeur" n'est pas un type de données fondamental). Je pense que cela dépendrait aussi un peu du constructeur et du comportement là-bas aussi ... des pensées ???
Le seul constructeur de CustomClass ressemble à ceci:
CustomClass::CustomClass(ClassA param1, ClassB param2, ClassC param3, ClassD param4)
:privateClassA(param1),
privateClassB(param2),
privateClassC(param3),
privateClassD(param4)
{
}
Merci beaucoup!
"Une variable de pointeur local non initialisée ou un champ aura une valeur indéfinie" n'est pas vrai, voir l'autre réponse de Keith Randall. – Thomas
Salut Pavel - merci beaucoup. Vous avez répondu à ma question exactement. Ma référence actuelle ne mentionne rien sur les objets étant "initialisés par défaut". Pourriez-vous me diriger vers quelque chose? Merci encore! – jdt141
@Thomas: Si quelque chose n'est pas initialisé, quelle valeur attendez-vous qu'il ait? Vous ne pouvez pas attendre de valeur, les données non initialisées sont indéfinies en valeur. – GManNickG