Форум программистов, компьютерный форум 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, если этот секретарь сейчас не разговаривает по Spyke. Помогите Поликарпу по этим данным определить, сколько пар секретарей сейчас ведут разговор. Если в данные Поликарпа закралась ошибка, и описанная ситуация никак не могла произойти,...
C++ Найти слова с парным количеством букв http://www.cyberforum.ru/cpp-beginners/thread836296.html
учим использование строк. Текст вводить с клавиатуры. Оригинал текста и результат должен быть выведен на экран. А нужно найти слова с парным количеством букв.
C++ epson xp 207 - как сбросить счетчик epson xp 207 - как сбросить счетчик Предлогаю обсудить идею по сбросу счетчиков в epson xp 207. Если есть програмки выкладываейте только те которые крякнуты или не просят паролей. подробнее

Показать сообщение отдельно
art3330
 Аватар для art3330
9 / 9 / 1
Регистрация: 16.12.2012
Сообщений: 141
13.04.2013, 02:34     Шаблон класса "Однонаправленный список"
Доброго времени суток. Возник вопрос по шаблонам. С самими шаблонами я вроде бы разорался, и вот хотелось бы сделать такую вещь. Чтобы я мог создавать список тех объектов, которые захочу. Но не могу додуматься как сделать ввод и вывод. попытался создать функции в классах, объекты которых мы хотим создать и как-то к ним обратится. Да вот не получается. Помогите, пожалуйста, либо сделать, чтобы мой вариант работал, либо как-то по-другому реализовать. Заранее спасибо.
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;
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru