#include <iostream>
#include <string>
#include <cstdlib>
#define MAX_SIZE 100
int pos=-1;
using namespace std;
class StackElement {
private:
int data;
string name;
public:
StackElement() {
data=0;
name="brak";
}
StackElement(int d, string n) {
data = d;
name = n;
}
void getData() {
cin>>data;
}
void getName() {
cin>>name;
}
};
class Stack {
private:
int stackSize;
StackElement element[];
public:
Stack() {
stackSize = 0;
cout<<"Stack is empty now."<<endl;
}
Stack(int s) {
stackSize = s;
}
void push() {
element[pos+1].getData();
cout<<"Enter element name:"<<endl;
element[pos+1].getName();
pos++;
}
void pop() {
pos--;
}
bool isEmpty() {
if(stackSize==0)
return true;
}
bool isFull() {
if(pos==MAX_SIZE)
return true;
}
};
int main() {
Stack stack(MAX_SIZE);
int choice;
cout<<"1. Push in stack.\n2. Pop from stack.\n3. Display stack.\n4. Exit."<<endl;
if(stack.isEmpty())
cout<<endl<<"Stack is empty."<<endl<<endl;
do {
cout<<"Enter your choice"<<endl;
cin>>choice;
switch(choice) {
case 1:
cout<<"Enter value:"<<endl;
stack.push();
break;
case 2:
stack.pop();
break;
case 3:
cout<<"Soon-to-be displayer"<<endl;
break;
case 4:
cout<<"Exit"<<endl;
break;
default:
cout<<"Invalid choice"<<endl;
}
if(stack.isFull()) {
cout<<"Stack is full!"<<endl;
break;
}
} while (choice != 4);
return 0;
}
Упражнение выглядит следующим образом: создайте класс Stack и StackElement.Элемент стека должен содержать: 2 частных пула одного выбора, геттер / геттер и 2 конструктора - один по умолчанию и параметризованный (с 2 параметрами).Стек должен содержать: элементы типа StackElement, частный пул размер , один конструктор по умолчанию и один параметризованный (один параметр), методы push, pop, isEmpty, isFull
Моя проблема в том, что когда я запускаю программу, она падает сразу после того, как я пытаюсь поместить элемент в стек.