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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
feniks
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 31
#1

Шаблон класса с++ - C++

15.01.2014, 19:27. Просмотров 399. Ответов 7
Метки нет (Все метки)

StakNode.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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#ifndef _STACKNODE_H_
#define _STACKNODE_H_
#include <string>
 
template<class T>
class Stack
{
public:
    Stack():tail(0), head(0)
    {
    }
    
    ~Stack()
    {
        delete tail;
        delete head;
    }
 
    void push(int val)
    {
        Node* Temp;
        Temp=new Node;
        Temp->elem=val;
        if(tail==0)
        {
            tail=Temp;
        }
        else
        {
            Temp->next=tail;
            tail=Temp;
        }
    }
 
    char top()
    {
        if(tail==0)
            std::string("Стек пуст!");
        else
 
        return tail->elem;
    }
 
    void pop()
    {
        if(tail==0)
            std::string("Стек пуст!");
 
        Node* delptr=tail;
        tail=tail->next;
        delete delptr;
    }
 
    void print()
    {
        if(tail==0)
            std::string("Стек пуст!");
        else
 
        for(Node* ptr=tail; ptr!=0; ptr=ptr->next)
        {
            std::cout<<ptr->elem<<' ';
        }
        std::cout<<'\n';
    }
private:
    struct Node
    {
        Node():elem(0), next(0)
        {
        }
        Node* next;
        char elem;
    };
    Node* head;
    Node* tail;
};
 
#endif
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
#include <iostream>
#include <locale.h>
#include "StackNode.h"
 
 
int main()
{
    setlocale(LC_CTYPE, "Russian_Russia.1251");
    Stack<char> St;
    St.push('1');
    St.push('2');
    St.push('4');
    St.push('3');
    {
        St.print();
        std::cout<<St.top()<<'\n';
        St.pop();
        St.print();
        std::cout<<St.top()<<'\n';
        St.pop();
        St.print();
        std::cout<<St.top()<<'\n';
        St.pop();
        St.print();
        std::cout<<St.top()<<'\n';
        St.pop();
        St.print();
    }
    system ("pause");
    return 0;
}
Нужно избавиться от шаблона класса. В функциях и переменных я это уже сделал. Как убрать до конца?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2014, 19:27     Шаблон класса с++
Посмотрите здесь:

C++ Шаблон класса
Шаблон класса C++
C++ Шаблон класса.
Шаблон класса C++
Шаблон класса (параметризация класса) C++
C++ Шаблон класса
Шаблон класса C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
15.01.2014, 20:02     Шаблон класса с++ #2
feniks, Убирайте
C++
1
template<class T>
и везде где встречается Т меняйте на нужный вам тип данных
feniks
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 31
15.01.2014, 20:07  [ТС]     Шаблон класса с++ #3
Везде где было Т на нужный тип я уже поменял, а
C++
1
template<class T>
просто так не уберешь, ибо 36 ошибок, потому и спрашиваю, что еще необходимо сделать.
Croessmah
Модератор
Эксперт CЭксперт С++
12885 / 7271 / 810
Регистрация: 27.09.2012
Сообщений: 17,970
Записей в блоге: 2
Завершенные тесты: 1
15.01.2014, 20:12     Шаблон класса с++ #4
C++
1
2
        if(tail==0)
            std::string("Стек пуст!");
круть
C++
1
2
3
4
5
    ~Stack()
    {
        delete tail;
        delete head;
    }
а другие элементы удалять не нужно?
feniks
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 31
15.01.2014, 20:12  [ТС]     Шаблон класса с++ #5
cooller_94, В основном:

error C2065: 'St' : undeclared identifier
error C2228: left of '.pop' must have class/struct/union
1> type is ''unknown-type''
Croessmah
Модератор
Эксперт CЭксперт С++
12885 / 7271 / 810
Регистрация: 27.09.2012
Сообщений: 17,970
Записей в блоге: 2
Завершенные тесты: 1
15.01.2014, 20:13     Шаблон класса с++ #6
Цитата Сообщение от feniks Посмотреть сообщение
error C2065: 'St' : undeclared identifier
C++
1
Stack St;//Нет шаблона, нет <char>
feniks
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 31
15.01.2014, 20:18  [ТС]     Шаблон класса с++ #7
Croessmah, если Вы еще подскажите какие, будет вообще замечательно... )))

Добавлено через 4 минуты
Croessmah, а вывод текста "Стек пуст", это остатки от проги с шаблоном, пока не менял))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2014, 21:23     Шаблон класса с++
Еще ссылки по теме:

C++ Шаблон класса
C++ шаблон класса
C++ Создать шаблон некоторого класса, возможно, реализованного с применением некоторого серверного класса
C++ Шаблон класса
шаблон класса C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
monolit
182 / 182 / 21
Регистрация: 24.03.2011
Сообщений: 657
Завершенные тесты: 1
15.01.2014, 21:23     Шаблон класса с++ #8
Цитата Сообщение от feniks Посмотреть сообщение
если Вы еще подскажите какие
Это он про те, которые ты выделял push'ем. Т.е. все, которые между head и tail.

Добавлено через 2 минуты
Цитата Сообщение от feniks Посмотреть сообщение
вывод текста "Стек пуст", это остатки от проги с шаблоном
Там вроде как это совсем бесполезно, особенно в твоем исполнении.) Хоть выведи это сообщение, чтоль.
Yandex
Объявления
15.01.2014, 21:23     Шаблон класса с++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru