Erreur de compilation : "référence indéfinie"
Bonjour à toutes et tous,
Je débute en C++ et je m'exerce en réalisant des petits scripts.
Je voudrais étendre mes connaissances en tentant de maîtriser la POO... mais j'ai un peu de mal :-) .
Je tombe sur une erreur classique de compilation qui, d'après ce que j'ai pu voir sur le net, peut être causé par différents types de choses, seulement je n'ai pas trouvé de solution adaptée à mon cas.
Je souhaite utiliser un objet Panier dans ma fonction "main", j'ai créé une classe Panier avec un fichier en tête en ".h" et le fichier de fonction en ".cpp".
Le fichier "main.cpp"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <iostream>
#include <istream>
using namespace std;
#include "Panier.h"
int main() {
Panier panier;
cout << "Total du panier : " << panier.getTotal() << endl;
return 0;
} |
Le fichier "Panier.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
| #ifndef PANIER_H
#define PANIER_H
using namespace std;
#include "Panier.cpp"
class Panier
{
private:
double sub_total;
double vat;
double total;
int count;
public:
double getSubtotal();
double getVat();
double getTotal();
};
#endif |
Le fichier Panier.cpp
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
| #include <iostream>
using namespace std;
double sub_total = 0;
double vat = 0;
double total = 0;
double getSubtotal() {
return sub_total;
}
double getVat() {
return vat;
}
double getTotal() {
return total;
} |
Je compile sous Unbuntu avec GCC, voici la ligne de commande exécutée :
Code:
g++ main.cpp -std=c++14 -Wall -Wextra -o main
Voici les détails de l'erreur de compilation :
/tmp/ccd4J1Yo.o *: Dans la fonction « main » :
main.cpp:(.text+0xbea): référence indéfinie vers « Panier::getTotal() »
collect2: error: ld returned 1 exit status
Je précise que la compilation ne pète pas si je ne fais pas panier.getTotal().
Merci d'avance pour votre aide.