[Debutant+] Construction d'un objet / méthode d'accès
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:
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 |
Code de la méthode addElt dans Term.cpp:
Code:
1 2 3 4 5 6
|
// ajoute un élément en fin du vecteur
Term::addElt(int var) {
indet.push_back(var);
} |
Et au cas où, mon main:
Code:
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];
} |
Merci d'avance,
Benjamin