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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
#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 : 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
#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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.