Erreur constructeur

Résolu
cgarbite Messages postés 21 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 6 septembre 2005 - 6 juin 2005 à 00:55
cgarbite Messages postés 21 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 6 septembre 2005 - 6 juin 2005 à 09:32
Developpeur_Fou



Je programme avec borland c++



J ai 2 classes.





class TForm1 : public TForm

{

__published: // Composants gérés par l'EDI

TSession *Masession;

TDatabase *Database1;

TTable *Table1;

TDataSource *DataSource1;

TButton *Button1;

TMemo *Memo1;

TEdit *Edit1;

void __fastcall Button1Click(TObject *Sender);

//void __fastcall afficher();



private: // Déclarations de l'utilisateur



public: // Déclarations de l'utilisateur



__fastcall TForm1(TComponent* Owner);

};



class JeuEnregistrements : public TForm1

{



int test;



public:

void extraire_valeur();

int initialiser(int requete );

int get(void){return test;}



};



et voila la fonction qui a une erreur



void JeuEnregistrements::extraire_valeur()

{

JeuEnregistrements *Tab = new JeuEnregistrements() ; // L ERREUR EST LA



int test;

test= 2;



(*Tab).initialiser(test);



}



erreur: le compilateur n a pas pu generer constructeur par defaut de la classe JeuEnregistrements.



Je comprend pas !!!



merci

3 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
6 juin 2005 à 09:16
La classe TForm1 n'a pas de constructeur par défaut (il a été surchargé par un evec paramètre __fastcall TForm1(TComponent* Owner);)
La classe JeuEnregistrements n'ayant pas de constructeur de défini le compilo essaye de prndre celui par défaut (sans paramètre). Mais ce constructeur par défaut doit appeler le constructeur de la classe de base (TForm1) qui ne posède plus ce constructeur par défaut => le compilateur est bloqué. il faut définir un constructeur pour JeuEnregistrements (avec ou sans param) qui appelle celui de TForm1 par exemple :
JeuEnregistrements :: JeuEnregistrements ()
: TForm1(NULL)
{
}
3
cs_Stubbornman Messages postés 80 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 12 janvier 2007
6 juin 2005 à 09:01
Si je ne me trompe pas, il ne faut pas mettre de parentheses:


void JeuEnregistrements::extraire_valeur()
{
JeuEnregistrements *Tab = new JeuEnregistrements;

int test;
test= 2;

(*Tab).initialiser(test);
}
0
cgarbite Messages postés 21 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 6 septembre 2005
6 juin 2005 à 09:32
Developpeur_Fou





MERCI a vous deux !!!
0
Rejoignez-nous