I have some problem. I created program with dynamic stack and when I compiling get errors: 'class stos' has no member named 'push' , 'class stos' has no member named 'pop' , 'class stos' has no member named 'destroy' , 'class stos' has no member named 'isempty'. In language C program is fine, but in C++ not. I have started my adventure with C++ and I don't have idea what's wrong I do. Can you help me ? I'm putting a code:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <iostream>
#include <conio.h>
using namespace std;
class stos
{
public:
int *tab;
int licznik;
int rozmiar;
};
void init (class stos* s)
{
s->licznik = 0;
s->rozmiar = 3;
//s->tab = (int*) malloc ( 2 * sizeof * s->tab );
s->tab = (int*) malloc ( s->rozmiar * sizeof(int) );
if (s->tab == NULL)
{
cout << "Blad alokacji pamieci\n";
abort ();
}
}
void push (class stos* s, int element)
{
if (s->licznik != s->rozmiar)
{
cout << "Dodaj element do stosu\n";
cin >> element;
s->tab[s->licznik] = element;
s->licznik++;
}
else
{
s->rozmiar = 2 * (s->rozmiar);
s->tab = (int*) realloc (s->tab, (s->rozmiar) * sizeof (int));
cout << "Zwiekszono pamiec\n";
cout <<"Dodaj element do stosu\n";
cin >> element;
s->tab[s->licznik] = element;
s->licznik++;
}
//system ("clear");
}
int pop (class stos* s)
{
if (s->licznik == 0)
{
cout << "Nie podales zadnego elementu\n";
abort ();
}
else
{
s->licznik--;
}
return s->tab[s->licznik];
}
void destroy (class stos* s)
{
free (s->tab);
}
bool isempty (class stos* s)
{
bool empty = true;
if (s->licznik == 0)
{
empty = true;
cout << "Stos nie posiada zadnych elementow\n";
}
else
{
empty = false;
cout << "Stos zawiera jakies elementy\n";
}
return empty;
}
int main ()
{
int element = 0, a = 0;
stos stos1;
stos stos2;
do
{
cout << "\nMENU\n\n";
cout << "STOS I\nAby dodac element do stosu wcisnij '1'\nAby odjac element ze stosu wcisnij '2'\n";
cout << "Wcisnij '3' aby usunac stos\nWcisnij '4' aby sprawdzic czy stos zawiera elementy\n\n";
cout << "STOS II\nAby dodac element do stosu wcisnij '5'\nAby odjac element ze stosu wcisnij '6'\n";
cout << "Wcisnij '7' aby usunac stos\nWcisnij '8' aby sprawdzic czy stos zawiera elementy\n\n";
cout << "Wcisnij '0' aby zakonczyc dzialanie programu\n\n";
cin >> a;
//system ("clear");
if (a == 1)
{
stos1.push (element);
}
if (a == 2)
{
cout << "Usunieto element:" << stos1.pop;
}
/*if (a == 3)
{
destroy (&stos1);
printf ("Wyczyszczono stos 1\n");
}*/
if (a == 4)
{
stos1.isempty;
}
if (a == 5)
{
stos2.push (element);
}
if (a == 6)
{
cout << "Usunieto element: " << stos2.pop;
}
/*if (a == 7)
{
destroy (&stos2);
printf("Wyczyszczono stos 2\n");
}*/
if (a == 8)
{
stos2.isempty;
}
}
while (a!=0);
destroy (&stos1);
destroy (&stos2);
getch();
return 0;
}