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