Bonjour/'soir ,
voilà , je poste dans l'urgence , je suis quelque peu pressé par le temps , j'espère néanmoins que vous prêterez attention à mon problème.
Je veux faire une classe avec comme principale attributs une pile STL acceptant des std::string , j'ai défini les fonctions de base de la pile STL sur ma classe pour pouvoir y accéder facilement. A la compilation ca marche tant que n'instancie pas de pile et que je tente pas d'utliser ma méthode push().
Voilà mon code :
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 #include <stack> class pile{ //attributs protected: std::stack<std::string> p; //méthodes public: bool empty() const; void push(std::string&); //void push(std::string); void pop(); int size(); std::string& top(); };
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 #include <iostream> #include "pile.hh" bool pile::empty() const{ return p.empty(); } void pile::push(std::string& s){ p.push(s); } /* void pile::push(std::string s){ p.push(s); }*/ void pile::pop(){ p.pop(); } int pile::size(){ return p.size(); } std::string& pile::top(){ return p.top(); }L'erreur de compilation quand je tente de compil mon .cc de test , le pile.cc étant compilé à part :
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 #include <iostream> #include <stack> #include "pile.hh" int main(){ pile P; std::string s("test"); std::string& r = s; P.push(r); /*std::stack<std::string> p; p.push(std::string("test")); std::cout << p.top();*/ }
Je ne comprend pas exactement le message d'erreur , si quelqu'un de familier avec std::string et les piles pouvait m'aider , ca me serait d'un grand secoursg++ test.cc -Wall -o test
/tmp/ccqeNGLU.o: In function `main':
test.cc.text+0xcd): undefined reference to `pile::push(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
collect2: ld a retourné 1 code d'état d'exécution
camu@ubuntu:~/c++/projet$ g++ test.cc -Wall -o test
/tmp/ccoQzJtb.o: In function `main':
test.cc.text+0xd3): undefined reference to `pile::push(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
collect2: ld a retourné 1 code d'état d'exécution![]()
Partager