#define size 10
class stack {
char stck[size];
int tos;
public:
int init;
void puch(char ch);
char pop;
};
void stack::init()
{
tos=0;
}
void stack::puch(char ch)
{
if (tos==size)
{
cout<<"Стек полон./n";
}
stck[tos]=ch;
tos++;
}
char stack::pop()
{
if(tos==0)
{
cout<<"Стек пуст./n";
return 0;
}
tos--;
return(stck[tos]);
}
int main()
{
string s=0;
stack s1,s2;
char c;
s1,s2.init;
while (s!='exit')
{
cin>>s;
if (s=='push')
{
cin>>s;
if (s=='s1')
{
cin>>c;
s1.puch(c);
}
else
{
if (s=='s2')
{
cin>>c;
s2.puch(c);
}
else
{
cout<<"error/n";
}
}
}
else
{
if (s=='pop')
{
cin>>s;
if (s=='s1')
{
cin>>c;
s1.pop;
}
else
{
if (s=='s2')
{
cin>>c;
s2.pop;
}
else
{
cout<<"error/n";
}
}
}
else
{
cout>>"error/n";
}
}
}
}
охрененно веселая прога
Примечание:
27 ошибок, вот 2 из них:
c:\documents and settings\nikita\мои документы\visual studio 2008\projects\1\1\1.cpp(103) : error C2063: stack::init: не является функцией
c:\documents and settings\nikita\мои документы\visual studio 2008\projects\1\1\1.cpp(116) : error C2063: stack::pop: не является функцией
и если про про последние 25 понятно что из-за несоответствия строки и логического оператора !=(c:\documents and settings\nikita\мои документы\visual studio 2008\projects\1\1\1.cpp(131) : error C2784: bool std::operator !=(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *): не удалось вывести аргумент шаблон для "const _Elem *" из "int"
c:\program files\microsoft visual studio 9.0\vc\include\string(120): см. объявление 'std::operator !='), то про первые 2 вообще нифига не понятно
как решить первые 2 ошибки и как решить проблему несовместимости строки и !=
?
Примечание:
SKYDOS,
исправил
Малёк,
там должно быть так:
void init;
void pop;
исправил
Примечание:
Малёк,
почему он не признает их как функции?
Примечание:
Малёк,
ан нет, pop должна быть char.
Примечание:
теперь 26
c:\documents and settings\nikita\мои документы\visual studio 2008\projects\1\1\1.cpp(130) : error C3867: stack::init: в вызове функции отсутствует список аргументов; используйте "&stack::init" для создания указателя на член
Примечание:
Jesterok,
>Во-первых не "cout>>", а "cout<<"
исправил(знаю, глупо получилось)
>[по-моему вы в прошлый раз с теми же "тараканами" сюда пришли])
1)не люблю я когда ко мне на вы обращаются
2)после паскаля к этому синтаксису нужно привыкать
>Во-вторых "char stack::pop()" - забыл точку с запятой.
где?
>В-третьих литерал нужно заключать в ковычки (двойние): s!="exit".
сделал
>В-четвертых s1.pop() s2.pop().
сделал
>нахрена ты задаешь size макросом?
сам так хотел, но шилдт убедил меня в обратном
Примечание:
осталась одна ошибка:
c:\documents and settings\nikita\мои документы\visual studio 2008\projects\1\1\1.cpp(129) : error C3867: stack::init: в вызове функции отсутствует список аргументов; используйте "&stack::init" для создания указателя на член
Примечание:
>[по-моему вы в прошлый раз с теми же "тараканами" сюда пришли]).
http://otvety.google.ru/otvety/thread?tid=3455de3074d8ac54&table=%2Fotvety%2Fuser%3Fuserid%3D12744262648755209139%26tab%3Dwtmtoa
>скажи мне пожалуйста, нахрена ты задаешь size макросом? Ты же пишешь на C++ а не на C. Замени эту дрянь на "const int size = 10;".
http://otvety.google.ru/otvety/thread?tid=4cd658ebcd81cbfb&table=%2Fotvety%2Fuser%3Fuserid%3D12744262648755209139%26tab%3Dwtmtoa
http://otvety.google.ru/otvety/thread?tid=1bc9215290b4d5aa&table=%2Fotvety%2Fuser%3Fuserid%3D12744262648755209139%26tab%3Dwtmtoa
Примечание:
http://msdn.microsoft.com/en-us/library/b0x1aatf%28VS.80%29.aspx
как я понимаю читать нужно это
пока ошибку не понял
Примечание:
Jesterok,
а в моем клиническом случае ничего нельзя сделать.
Знаю что можно сделать проще, но оч хочется узнать почему мой вариант не работает.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.