Probleme C++

Probleme C++ - Programmation

Marsh Posté le 10-03-2002 à 00:43:55    

:hello:  
 
Autrefois fier adepte du java,je viens juste de passer au c++. Mon gros problème est la construction d'un tableau d'objets en C++ que je n'arrive pas du tout à maitriser.
 
Avant en java, j'écrivait.
 
Soit la classe :
 
public class Toto {
public Toto(int id) {
this.id = id;
}
public int id;
}
 
et dans une classe quelconque je fais
public class Bobo {
public void bob() {
Toto totos[] = new Toto[5];
for (int i = 0; i < 5; i++)
toto[i] = new Toto(i);
}
}
 
En C++ cela donne :
class Toto {
public:
Toto(int ID):id(ID) {}
private:
int id;
};
 
class Bobo {
public:
void bob() {
Toto* toto;
// Qu'est ce qe je fous apres ???  :cry:  :cry:  :cry:  
}
};

 

[jfdsdjhfuetppo]--Message édité par ZeMin--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 10-03-2002 à 00:43:55   

Reply

Marsh Posté le 10-03-2002 à 00:45:35    

regarde les fonctions d'attribution de mémoire dans mem.h

Reply

Marsh Posté le 10-03-2002 à 00:48:39    

Il n'y a pas de mem.h dans le répertoire include de visual c++  :cry:  
Juste un memory.h mais je ne vois tjrs pas comment cela pourrait m'aider...  :sweat:

Reply

Marsh Posté le 10-03-2002 à 00:50:03    

void bob()
{
Toto toto[255];
}

Reply

Marsh Posté le 10-03-2002 à 00:51:54    

regarde dans le SDK, si t'as pas une fonction malloc

Reply

Marsh Posté le 10-03-2002 à 00:54:00    

void bob() {
Toto* totos = new Toto[5];
Toto* pTotos = totos;
for (int i=0;i<5;i++) {
Toto* aToto = new Toto(i);
memcpy(pTotos++,aToto,sizeof(Toto));
}
}
 
????  :??:  :??:  
Si c ca, merciii !! :)

Reply

Marsh Posté le 10-03-2002 à 00:54:31    

Olivier51 a écrit a écrit :

regarde dans le SDK, si t'as pas une fonction malloc  




 
Ah nan pas malloc c caca en C++ !!!! :)

Reply

Marsh Posté le 10-03-2002 à 00:55:38    

C'est vrai je ne pensais plus à new et delete.
En ce moment je programme plutôt en C, c'est pour ça ...

Reply

Marsh Posté le 10-03-2002 à 01:01:15    

C bon, le code que j'ai filé marche bien !!! :)
par contre, je ne sais pas si cela respecte bien la chartre C++.
 
Et le C, faut oublier c du passée !
Vous etes dans le nouvel ère, l'apogée du développement informatique : ...LE C SHARP !!!  :sol:

Reply

Marsh Posté le 10-03-2002 à 01:03:59    

ça dépend de la plate-forme, en ce moment je programme sur TI89, donc le C oblige et pas le C++

Reply

Marsh Posté le 10-03-2002 à 01:03:59   

Reply

Marsh Posté le 10-03-2002 à 01:47:20    

Nan finalement le memcpy foire :(
Ca écrase le contenu de totos à chaque fois :(

Reply

Marsh Posté le 10-03-2002 à 02:55:09    

t'est sur que tu veux pas plutot faire ca ?
void bob()  
{
 Toto** totos = new (Toto * [5]);
 for (int i=0;i<5;i++)  
 {
  totos[i] = new Toto(i);
        }
}

Reply

Marsh Posté le 10-03-2002 à 14:23:35    

C'est bien là d'où venait mon erreur.
 
Merci  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed