Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Стек и освобождение памяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Visual studio 2010 не обновляет вывод программы http://www.cyberforum.ru/cpp-beginners/thread270457.html
создаю приложение windows forms закидываю в форму кнопочки и т.д, проверяю F5 - все рабодаю, корректирую код, нажимаю F5 , а он изменения не учитывает и постоянно выводит , что выводило в первый...
C++ Генерация псевдослучайных чисел!!! Помогите кто чем может!!пожалуйста! Составьте программу, реализующую линейный конгруэнтный ГПСЧ, и способную генерировать случайные числа как по одному (с выводом на экран), так и... http://www.cyberforum.ru/cpp-beginners/thread270456.html
C++ Программирование WiFi
Доброго времени суток. Возникла проблема. Необходимо программно обработать сигнал, который поступает на компьютер по вайфаю от мобильного телефона. Гугл не даёт практически никаких результатов....
C++ не могу решить в С++
помогите пожалуйста решить задачку, очень нужно(((((( я понял, что задачу нужно решать как массив, но тут я столкнулся с проблемой, поскольку очень сложна для меня, очень много условий в этой...
C++ как будет выглядеть в Visual C++ http://www.cyberforum.ru/cpp-beginners/thread270410.html
void __fastcall TForm1::Memo1DblClick(TObject *Sender) { OpenDialog1->Execute(); //Загружаем данные их файла Memo1->Lines->LoadFromFile(OpenDialog1->FileName); //Устанавливаем признак того,...
C++ Вложенные циклы Дано натуральное число n и вещественное число x. Вычислить \sum_{j=1}^{n}((2i)!+|x|)/({i}^{2})! подробнее

Показать сообщение отдельно
gGrn-7DA
мну довольно <(-__-)l
203 / 192 / 1
Регистрация: 17.01.2010
Сообщений: 2,392
Завершенные тесты: 1

Стек и освобождение памяти - C++

05.04.2011, 14:26. Просмотров 2238. Ответов 4
Метки (Все метки)

Пишу класс стека, реслизую в виде односвязного списка.
stack.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef STACK_H_INCLUDED
#define STACK_H_INCLUDED
 
template <class Type> class Member{
public:
    Member<Type>(Type value, Member<Type> **member);
    ~Member();
    Type GetValue(){
        return _value;
    }
private:
    Member<Type> *_member;
    Type _value;
};
 
 
template <class Type> class stack{
public:
    stack();
    ~stack();
    int in(Type value);
    Type out();
    Type see();
private:
    Member<Type> *_member;
    int _count;
 
};
 
 
#endif // STACK_H_INCLUDED
stack.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "stack.h"
 
//-----=---==-=== class Member ===-==---=-----
 
template <class Type> Member<Type>::Member<Type>(Type value, Member **member){
    _value=value;
    _member=*member;
}
 
template <class Type> Member<Type>::~Member<Type>(){
    delete _member;
}
 
//-----=---==-=== class stack ===-==---=-----
 
template <class Type> stack<Type>::~stack(){
    delete _member;
}
 
template <class Type> stack<Type>::stack(){
    _count=0;
    _member=NULL;
}
 
template <class Type> int stack<Type>::in(Type value){
    _count++;
    Member *member=new Member(value, &_member);
    _member=member;
    return _count;
}
 
template <class Type> Type stack<Type>::out(){
    _count--;
    Type value=_member->GetValue();
    Member member=*_member->_member;
    _member->_member=NULL;
    delete _member;
    _member=&member;
    return value;
}
 
template <class Type> Type stack<Type>::see(){
    return _member->GetValue();
}
1 вопрос - правильно ли я построил метод stack::out() - он должен вернуть верхнее значение в стеке и удалить его из памяти. не повредеив остальным данным.
2 вопрос - можно ли как-то определить класс Member внутри определения класса stack? Без использования шаблона это легко, а вот с ним мне что-то не получается понять логику...

Добавлено через 29 минут
не компилится вообще - вот ошибки какие выдает:
stack.cpp|5|error: function "Member<Type>::Member(Type, Member<Type> **)" has already been defined|
stack.cpp|10|error: function "Member<Type>::~Member" has already been defined|
stack.cpp|16|error: function "stack<Type>::~stack" has already been defined|
stack.cpp|20|error: function "stack<Type>::stack()" has already been defined|
stack.cpp|25|error: function "stack<Type>::in" has already been defined|
stack.cpp|32|error: function "stack<Type>::out" has already been defined|
stack.cpp|42|error: function "stack<Type>::see" has already been defined|
||=== Build finished: 7 errors, 0 warnings ===|
Поможете разобраться???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru