Fonction qui initialize une instance de classe sans allocation dynamique

mmaximum Messages postés 38 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 9 décembre 2011 - 15 juil. 2008 à 13:50
mmaximum Messages postés 38 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 9 décembre 2011 - 15 juil. 2008 à 18:55
Bonjour à tous,

J'ai un petit problème que je n'arrive pas à résoudre:

On considère une classe ClassA et une fonction FunctionA.
Le constructeur de ClassA à besoin de 2 arguments : 2 entiers.
Le prototype de FunctionA est le suivant:

ClassA*  FunctionA(void);

FunctionA doit initialisé une instance de ClassA sans utiliser d'allocation dynamique,
puis, ensuite, doit retourner un pointeur sur l'instance crée.

Comment-faire pour coder ca en c/c++???

Merci d'avance, mmaximum

3 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
15 juil. 2008 à 17:00
tu peux faire ClassA *pClass=new ClassA(i1,i2);
mais c'est une allocation dynamique.
D'ailleurs pourquoi tu ne veux pas utiliser d'allocation dynamique?
0
cs_Lucky92 Messages postés 180 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 16 août 2012 2
15 juil. 2008 à 18:12
Est-ce que cela répond à ton besoin ?

classA * functionA()
{
    static classA A;
    A = classA( 15 , 2 );
    return & A;
}
0
mmaximum Messages postés 38 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 9 décembre 2011 2
15 juil. 2008 à 18:55
Petit problème, la fonction retrourne toujours le même pointeur, ca ne crée qu'une unique instance et je voudrai qu'à chaque appelle de FonctionA ca crée une nouvelle instance de ClassA.
j'ai trouvé une autre solution un peu plus longue.
Sinon pour l'allocation dynamique, c'est seulement en dernier retour car je suis sur à 99% qu'il y aura des fuites mémoires.

Merci quand même de m'avoir aidé!
0
Rejoignez-nous