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

Шаблон класса "Однонаправленный список" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ PinvokeLib.dll http://www.cyberforum.ru/cpp-beginners/thread836327.html
Уважаемые форумчане, не могли бы вы выложить эту чудесную либу?( Или хотя-бы скомпилировать... http://msdn.microsoft.com/ru-ru/library/as6wyhwt(v=vs.100).aspx
C++ Программа игры "Тетрис" на С++ или Java Немного не на тот форум пишу, но может быть у кого-нибудь есть программа, которая создает тетрис на С++ или Java?))) Буду очень благодарна:bravo: http://www.cyberforum.ru/cpp-beginners/thread836308.html
C++ Каждую цифру заменить на заключенную в круглые скобки последовательность знаков
Многострочный текст, введенный с клавиатуры, преобразовать следующим образом: каждая цифра заменяется на заключенную в круглые скобки последовательность знаков ‘+’ (если цифра четная) или ‘–’ (если...
Так, норм задачка, гляньте, скажите что да как C++
Как-то раз Поликарп захотел узнать, кто из секретарей разговаривает по Spyke, а кто — нет. Он выписал для каждого секретаря номер сессии его разговора, или 0, если этот секретарь сейчас не...
C++ Найти слова с парным количеством букв http://www.cyberforum.ru/cpp-beginners/thread836296.html
учим использование строк. Текст вводить с клавиатуры. Оригинал текста и результат должен быть выведен на экран. А нужно найти слова с парным количеством букв.
C++ epson xp 207 - как сбросить счетчик epson xp 207 - как сбросить счетчик Предлогаю обсудить идею по сбросу счетчиков в epson xp 207. Если есть програмки выкладываейте только те которые крякнуты или не просят паролей. подробнее

Показать сообщение отдельно
art3330
10 / 10 / 1
Регистрация: 16.12.2012
Сообщений: 141

Шаблон класса "Однонаправленный список" - C++

13.04.2013, 02:34. Просмотров 1328. Ответов 6
Метки (Все метки)

Доброго времени суток. Возник вопрос по шаблонам. С самими шаблонами я вроде бы разорался, и вот хотелось бы сделать такую вещь. Чтобы я мог создавать список тех объектов, которые захочу. Но не могу додуматься как сделать ввод и вывод. попытался создать функции в классах, объекты которых мы хотим создать и как-то к ним обратится. Да вот не получается. Помогите, пожалуйста, либо сделать, чтобы мой вариант работал, либо как-то по-другому реализовать. Заранее спасибо.
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include <iostream>
 
using namespace std;
 
class Data{
    private:
        int day;
        int mon;
        int year;
    public:
        Data():day(0),mon(0),year(0) {};
        Data(int d, int m, int y):day(d),mon(m),year(y) {};
        
        void instruct(){
            cout<<"Enter time: "<<endl;
            cin>>day>>mon>>year;
        };
        
        void outstruct(){
            cout<<"Data: "<<day<<mon<<year;
        };
};
 
 
class Time{
    private:
        double sec;
        double min;
        double hour;
    public:
        Time():sec(0),min(0),hour(0) {};
        Time(int s, int m, int h):sec(s),min(m),hour(h) {};
        
        void instract(){
            cout<<"Enter time: "<<endl;
            cin>>sec>>min>>hour;
        };
        
        void outstract(){
            cout<<"Time: "<<sec<<min<<hour;
        };
};
        
 
template<class T>class Node{
    public:
        Node *next;
        T *data;
        Node():next(0){};
};
 
template<class T>class List{
    private:
        Node<T>* first;
        Node<T>* current;
        
    public:
        List():first(0),current(0) {};
        ~List(){
            while (first!=0){
                current=first;
                first=current->next;
                delete current;
            };
        };
        
    private:
    
    void in(){
        int i=1;
        while (i!=0){
            if (first==0){
                current=new Node<T>();
                current->data=new T();
                first=current;
            }
            else{       
                current->next=new Node<T>();
                current=current->next;
                current->data=new T();
            };
            cout<<"Enter time"<<endl;
            cout<<"Seconds: ";
            T::instruct();
            cout<<"Enter 0 to continue: ";
            cin>>i;
        };
    };
        
    void out(){
        current=first;
        while(current!=0){
            cout<<"Data: "<<endl;
            T::outstruct();
            current=current->next;
        };
    };
    
    friend istream& operator >> (istream& is, List& obj){
        obj.in();
        return is;
    };
    
    friend ostream& operator << (ostream& os, List& obj){
        obj.out();
        return os;
    };
};
 
int main(){
    List<Time> obj1;
    cin>>obj1;
    cout<<obj1;
    List<Data> obj2;
    cin>>obj2;
    cout<<obj2;
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru