salut � tous !
au risque de passer pour le noeud que je suis en C+, j'ai une erreur persistante disant :
je suis sur que cela est une erreur courante de debutant mais voila google m'a appris deja la diff�rence entre aggregate (type simple) et non aggregate (complex) mais voila encore faut til savoir ce que mon compilateur n'aime pas � la ligne 12... c'est un exo sur des listes chain�es.main.cpp:12: error: request for member `getValeur' in `e1()', which is of non-aggregate type `element ()()'
voici les entetes
et le corp du constructeur en question (ligne 12) cad le constructeur a vide:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #ifndef ELEMENT_H #define ELEMENT_H #include <iostream> #define null 0 using namespace std; typedef int X; class element{ /*cette classe definit ce qu'est un element d'ensemble generique*/ //propriété de la classe (private) X valeur; element* suivant; //pointeur sur element suivant public: //methode de la classe //constructeurs element(); element(const X &val); element(const X &val, element* ad); //methodes membres X getValeur()const; element* getSuivant()const; void setValeur(const X &val); void setSuivant(element* suivant); }; //fin de la classe element //definition des methodes non membre de la classe element void Detruire(element* &primelt); #endif
c'est d'autant plus etonnant qu'il accepte mes deux autres constrructeurs sans pb.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 element::element(){ valeur = 1; suivant = null; }
le code d'appel (main est)
tout simplement, ben non ca veut pas !!
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 int main(int argc, char *argv[]) { element e1(); cout << "definition de e1 sans parametre\r\n"; cout << "la valeur de e1 est " << e1.getValeur() << " et il pointe vers " << e1.getSuivant() << "\r\n";
vous n'auriez as une id�e
merci et pardon pour les longueurs
WDionysos !
Partager