#include <iostream>
class stack
{
private:
int top; //the top cell
int s[10]; //the stack array
public:
stack():top(0){}
void push(int var); //the pushin func
int pop(); //the poppin func
bool empty(int top);
bool full(int top);
};
void stack::push(int var)
{
if (!full)
{
top++;
s[top] = var;
}
}
int stack::pop()
{
if (!empty)
{
int var=s[top];
top--;
return var;
}
}
bool stack::empty(int top)
{
if (top==0) return 1; else return 0;
}
bool stack::full(int top)
{
if (top==9) return 1; else return 0;
}
собственно не могу понять как вызвать функции full и empty. может !s.full(top)? !full(top)? а то надо разобраться с классами, но в этом случае мне не совсем ясно, какой у меня объект. По идее, мой объект- это стек. И я хочу с ним делать всякие штуки. например проверить полный он или пустой. А значит я должен по идее написать "объект.метод(аргумент)". Но я не уверен. Помогите, пожалуйста. Вопрос, наверное легкий.
Примечание:
ага, точняк. сам стек то я и не сделал.
значит, допустим, у меня будет
stack first(){};
тогда if(!first.full())... так?
а любая функция класса имеет доступ к любым свойствам?
Примечание:
Как можно заполнить стек какими-нибудь вводящимися данными, через _getch(), например? А то ведь мне чтобы сделать новый объект надо его задать, а для этого надо б сделать конструктор. В дефолтном конструкторе вроде как _getch() не помещается. Да и как вообще этот массив инициализировать? Или открыть фигурные скобки конструктора и написать туда обычный цикл инициализации?
Совсем я запутался (%
Примечание:
Спасибо, вроде разобрался теперь со всем. Буду пока учить дальше. А пока что почитаю что-нибудь про ООП. А то классы надо б посмотреть как юзаются.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.