#1 Le 01/03/2007, à 16:50
- Rodriguez
[C++]Augmenter la taille et ajouter des éléments dans un tableau
Hello,
j'ai 3 class Animal, Tigre, Test
Tigre hérite de Animal
class Test{
Animal [] tabAnimaux; //tableaux contenant les animaux
int taille; //taille du tableaux
int nbElements; //nombres de cases libres du tableaux
void augmenter_taille(int nb){
//?
}
Comment s'écrit la méthode augmenter_taille
int main(){
Animal [] animaux;
for(int i=0; i<50; i++)
animaux [i] = new Tigre();
}
}
Est-ce que cette écriture est possible :
animaux [i] = new Tigre(...);
Si ce n'est pas le cas, comment faire pour ajouter des Tigres dans le tableau ?
Merci
Hors ligne
#2 Le 01/03/2007, à 17:46
- Ryo
Re : [C++]Augmenter la taille et ajouter des éléments dans un tableau
Bonjour,
Ce n'est pas possible en C++ de faire agrandir un tableau dynamiquement. Les tableaux sont utiles si tu connais exactement le nombre d'élements lors de l'écriture.
Le mieux dans ce cas est de faire des listes chainés. Ce sont des classes qui contiennent basiquement 2 atrtributs :
- la donnée
- un pointeur vers le prochain élément
si il n'y pas de prochain élément, le pointeur est NULL.
Pour rajouter un élément, il faut faire pointer le dernier pointeur vers le nouvel élement, et ainsi de suite ...
En faisant une petite recherche Google ou directement sur http://c.developpez.com/, tu devrais y arriver !
bonne chance
ciao
#3 Le 01/03/2007, à 19:19
- Luc Hermitte
Re : [C++]Augmenter la taille et ajouter des éléments dans un tableau
Utilises les std::vector, c'est fait pour ça. cf FAQ de developpez.
#4 Le 02/03/2007, à 00:49
- best_friend_fr
Re : [C++]Augmenter la taille et ajouter des éléments dans un tableau
Tu peux quand meme utiliser la commande realloc (tres tres moche, surtout si tu as utilisé new au lieu de malloc...)
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#5 Le 02/03/2007, à 01:45
- Luc Hermitte
Re : [C++]Augmenter la taille et ajouter des éléments dans un tableau
Non tu n'as pas le droit aux *alloc(), ce n'est pas compatible avec les classes.
std::vector<Animal*> est la solution.
#6 Le 02/03/2007, à 14:27
- gene69
Re : [C++]Augmenter la taille et ajouter des éléments dans un tableau
si tu dois redimentioner un tableau il faut que tu alloues un nouveau tableau est que tu copies les données de l'ancien tableau dans le nouveau...
pas de malloc et on évite les memcopy...
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne