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

Стек на шаблонах - оцените реализацию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Композиция и иерархия: класс "комната", "квартира" http://www.cyberforum.ru/cpp-beginners/thread1228389.html
(Композиция и иерархия). Создать класс комната, имеющая площадь. Определить конструктор и метод доступа. Создать класс однокомнатная квартира, содержащий комнату и кухню (их площадь), этаж (комната содержится в классе однокомнатная квартира). Определить конструкторы, методы доступа. Определить public-производный класс однокомнатных квартир разных городов (дополнительный параметр – название...
C++ Иерархия: класс "карта", "колода карт" (Иерархия). Создать класс карта, имеющая ранг и масть. Карту можно перевернуть и открыть. Создать класс – колода карт, содержащий карты. Создать два производных класса от колоды карт, в одном карты могут доставаться только по порядку, в другом - вытаскиваться произвольно http://www.cyberforum.ru/cpp-beginners/thread1228388.html
Написать функцию, которая сравнивает два целых числа C++
Написать функцию, которая сравнивает два целых числа и возвращает результат сравнения в виде одного из знаков: < > или =. Это код второй, но не доделал: char f(int a, int b) { if (a>b)return '>'; if (a<b)return '<'; return '='; }
C++ Выделение памяти в куче для строки для реализации длинной арифметики
Доброго времени суток, пишу класс string, на основе которого потом хочу реализовать класс для длинной арифметики. Поэтому мне понадобился такой конструктор: // constructor by integer string::string( const int number, const int base ) { char * buffer = (char *)realloc(NULL, sizeof(char)*sizeof(int)+5); _itoa(number, buffer, base ); length = strlen(buffer); takeMemory( NULL, length );...
C++ В какой последовательности выполняются действия вычисления ошибки исходя из кода http://www.cyberforum.ru/cpp-beginners/thread1228333.html
// A program to implement a calculator accepting parentheses #include <iostream> // For stream input/output #include <cstdlib> // For the exit() function #include <cctype> // For the isdigit() function #include <cstring> // For the strcpy() function using std::cin; using std::cout; using std::endl;
C++ Ошибки линковки при использовании шаблонного класса Есть заголовочной файл Utils.h, в котором определены 2 класса String и ArrayList<T>: class String : public Comparable<String> { private: friend class Object; string data; public: String() {} /**/ ArrayList<String>* split(const String delimiter) const; подробнее

Показать сообщение отдельно
GetHelp
-8 / 60 / 6
Регистрация: 27.02.2013
Сообщений: 1,112
17.07.2014, 08:14  [ТС]     Стек на шаблонах - оцените реализацию
щас еще не пытался делать через списки, пришла просто в голову мысль как улучшить свой вариант

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
45
46
47
48
49
template <typename T>
class Stack
{
private:
    size_t size;
    size_t count;
    T* data;
public:
    Stack();
    ~Stack();
    void Push(T value);
    T Pop();
};
 
template <typename T>
Stack<T>::Stack()
{
    size = sizeof(T);
    data = new T;
    count = 1;
}
 
template <typename T>
Stack<T>::~Stack()
{
    T* ptr = data;
    for(int i = 0; i < count; i++)
        delete (ptr -= size);
}
 
template <typename T>
void Stack<T>::Push(T value)
{
    data += size;
    data = new T;
    *data = value;
    count++;
}
 
template <typename T>
T Stack<T>::Pop()
{
    count--;
    T tmp = *data;
    T* ptr = data;
    data -= size;
    delete ptr;
    return tmp;
}
вот, только вылетает с ошибкой при вызове деструктора...
Миниатюры
Стек на шаблонах - оцените реализацию  
 
Текущее время: 07:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru