Bonjour tout le monde,
je dois réaliser une pile en c++ pour mon TP et je bloque au niveau de la méthode push, cette dernière doit empiler un element (entier e) et renvoyer son index dans la pile
voilà ce que j'ai fais
Stack.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 #include "Stack.hpp" Stack::Stack(int n) { current=0; size=n; container=new int(n); } int Stack::push(int e) { container[current++]=e; size++; return -1;//là je sais pas cmt faire pour renvoyer l'indice apres l'ajout } Stack::Stack(const Stack& s) { size=s.size; current=s.current; for(int i=0;i<s.current;i++) { container[i]=s.container[i]; } }
Stack.hpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
 1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include<stdlib.h> #include<iostream> class Stack{ public: int current; int* container; int size; public: Stack(int n); Stack(const Stack& s); void push(int e); };
main.cpp
à l'execution ça m'affiche:
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"Stack.cpp" using namespace std; int main() { Stack s1(3); s1.push(3); s1.push(5); for(int i=0;i<s1.size; i++) { cout << s1.container[i] << endl; } return 1; }
3
5
0
135153
0
et si je met Stack s1(1) au lieu de 3, ça m'affiche
3
5
0
je pense que j'ai un problème au niveau du constructeur?
Quelqu'un peut m'aider?
Merci
		
		
        




   


  Répondre avec citation


 


 
 
 
 
  

Partager