Probléme avec création de tableau d'objet

Signaler
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
-
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
-
Bonjour a tous,
J'ai lu dans mon bouquin de c++ (j'apprend tout seul par passion) que l'on
peut créer un tableau d'objet
exemple:

class A{
.
.
A(int i);//constructeur
}
;

//ici la création
A *pA=new A[nombre];

Le problème c'est que mon compilo (Borland) ne l'accepte uniquement si le constructeur ne prend aucun paramétres,pourtant dans mon bouquin leur constructeur a bien des paramétres!!,si quelqu'un peu m'expliquer ou m'aider merci

7 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
En général, les compilo ne permettent pas de fabriquer des tableaux d'objets dont les constructeur ont des paramètres. Il faut donc d'abord les créer avec le constructeur par défaut, puis les initialiser si besoin
Par curiosité, quelle est la syntaxe que donne ton livre?
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Avant d'apprendre le C++, t'es sure de pas vouloir apprendre les bases du C ?
Ca t'aiderai surement.

// Instanciation d'un objet
A *pA = new A(nombre); // Remplace les crochets par des parenthèse.

// Instanciation d'un tableau de 10objets
A myTab[10];

Shell
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Non mais lui il voudrait faire les deux je pense: un tableau, mais les objets sont créés avec des paramètres
Et puis je vois pas en quoi apprendre la C avant changerait quelque chose (pas de constructeur en C)
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
C'est en volant recopier mon livre (et oui ça aide de lire attentivement) que j'ai trouver l'erreur:

class A{
.
.
A(int i);//c'est ici il faut écrire A(int i=1)
}
;

//ici la création
A *pA=new A[nombre];
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Je doute qu'il ne veuille faire que des class.
N'importe quel professionnel te dira d'apprendre le C avant d'apprendre le C++.

Avant de courrir, tu apprends déjà à marcher!

Shell
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
ça fait 3 ans environ que je me suis a c++ et aprés bien des galère je commence a maitriser le c++ (polymorphisme,héritage) je ne voit plus l'utilité d'apprendre le C
Mais cela reste un bon conseil quand même je pense
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Oue moi je suis d'accord tibob, ca sert a rien d'apprendre comment
marche la roue pour programmer. Pour ton problème, ce que j'ai tjs
fais, c'est une fonction d'initialisation, qui fait quasiment la meme
chose que le constructeur.


obj * tab = new obj[10];

for(...)

{

    tab[i].Init(...);

}