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


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;
}
à l'execution ça m'affiche:

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