Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2012, 00:23   #1
Eugenelife
 
Регистрация: 23.02.2012
Сообщений: 4
По умолчанию Стек

Нужно сделать перегрузки операторов в классе стек, я совершенно запутался и получился полнейший бред. Оно работало глюченно когда я задавал размер стека, но я переделал конструктор и перестало работать вобще.
Код:
#include "stdafx.h"
#include <iostream>
#include "conio.h"
using namespace std;

class Stack
{
private:
	int size;
	int tos;
	char* a;
public:
	
	Stack() {tos=0; size=0; a=new char[size]; }
	Stack(const Stack &);
	~Stack() { delete [] a; }
	void push(char s);
	char pop();
	friend ostream& operator<<(ostream &, Stack &);
	friend istream& operator>>(istream &s, Stack &);
	//void calcuc();
};

Stack::Stack(const Stack &x):size(x.size),a(new char[size]) {a=x.a;};

void Stack::push(char s)
{ 
	a[tos]=s;
	tos++;
}
char Stack::pop()
{	tos--;
	return a[tos];
}
ostream &operator<<(ostream &s, Stack &p)
{

	for (int i=0;i< (p.size);i++) s<<p.pop()<<"\n";
	return s;
}
istream &operator>>(istream &s, Stack &p)
{ char k;
s>>k;
for (int i=0; i<(p.size-1); i++) {while (k!='=') {s >> k; p.push(k);}
}
return s;
}

int _tmain(int argc, _TCHAR* argv[])
{
Stack s1;
cin>>s1;
cout<<s1;

getch();

	return 0;
}
Помогите пожалуйста)
Eugenelife вне форума Ответить с цитированием
Старый 12.11.2012, 00:42   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

1. Зачем в конструкторе выделять память под 0 элементов?
2. С чего это будет работать, если вы память не выделяете, а пытаетесь туда писать?
p51x вне форума Ответить с цитированием
Старый 12.11.2012, 01:17   #3
Eugenelife
 
Регистрация: 23.02.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
1. Зачем в конструкторе выделять память под 0 элементов?
2. С чего это будет работать, если вы память не выделяете, а пытаетесь туда писать?
Так же на ленте пример дали, правда я не проверял работает ли он.
Eugenelife вне форума Ответить с цитированием
Старый 12.11.2012, 19:29   #4
Eugenelife
 
Регистрация: 23.02.2012
Сообщений: 4
По умолчанию

Ну помогите плз)
Eugenelife вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стек vadiprog Помощь студентам 1 13.12.2011 23:51
Стек Darknes Общие вопросы C/C++ 2 11.04.2011 23:30
Стек [ICQ] Помощь студентам 5 02.05.2010 13:44
стек в с++ Aleksa_ks Помощь студентам 0 02.05.2010 12:12