Bonjour,
J'ai une erreur très étrange que je n'avais jamais rencontré lors d'un autre TP C++; je définis un objet term du type Term (c'est un terme d'un polynome à plusieurs variables X1...Xn):
Term term();
Puis j'essaye d'appeler une méthode sur cet objet (en l'occurrence l'ajout d'un entier à un vecteur d'entiers):
term.addElt(56);
Et j'obtiens à la compilation le message très explicite suivant:
request for member `addElt' in `term()', which is of non-aggregate type `Term ()()'
Ceci dit, je ne vois pas comment résoudre l'erreur :-/
Code du header "Term.h":
Code de la méthode addElt dans Term.cpp:
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
35
36
37
38
39
40
41
42
43
44
45
46
47 #ifndef _Term #define _Term #include <cstdlib> /*#include "gmpxx.h" **** j'utiliserai cette classe lorsque le reste sera débuggé.. **** */ #include <vector> /* typedef mpz_class Gen; // type du coefficient */ typedef int Gen; typedef std::vector<int> Indet; // type des puissances des indeterminees class Term { public: // constructeurs: initialisation éventuelle des attributs Term::Term(); // prend un tableau d'entiers en paramètre, que l'on transforme en vecteur Term::Term(Gen coeff, int* tab_indet, int size); // size est la taille du tableau // ajoute un élément en fin du vecteur void Term::addElt(int var); // transformation d'un terme en son opposé Term Term::operator-(); // accès et modification des paramètres int Term::operator[](int p); // acces au coefficient Gen& Term::getCoeff(); // destructeur Term::~Term(); private: Gen coeff; Indet indet; }; #endif
Et au cas où, mon main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // ajoute un élément en fin du vecteur Term::addElt(int var) { indet.push_back(var); }
Merci d'avance,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include "Term.h" #include <iostream> using namespace std; int main(int argc, char **argv) { Term term(); term.addElt(56); cout << term[0]; }
Benjamin
Partager