Форум программистов, компьютерный форум 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, 18:05  [ТС]     Шаблон класса "Однонаправленный список"
Так это разве не тоже самое, что у меня, только в профиль? Блин. Совсем запутался.
Вот смотрите, у меня есть два объекта Time и Date. У них разные поля, которые надо ввести/вывести. (sec/day и т.д.). Так я не могу разобраться как сделать, чтобы мой шаблон сам решал какие поля выводить. Передали класс Time - выводит время, класс Date - дату. Поэтому я и запихнул ввод/вывод в сами классы и пытаюсь их вызвать через шаблон.

Добавлено через 18 минут
Вот чтобы я так мог сделать.
C++
1
2
3
4
5
6
7
8
int main(){
    List<Time> obj1;
    cin>>obj1;
    cout<<obj1;
    List<Data> obj2;
    cin>>obj2;
    cout<<obj2;
};
Добавлено через 4 часа 29 минут
Совсем запутался.

Добавлено через 1 час 21 минуту
Я просто через шаблон хочу вызвать одноименные методы из разных классов. Так можно?

Добавлено через 1 час 24 минуты
Видимо нельзя. Потому что не нашел я ничего толкового в интернете.
А вот такой момент. У менять есть такое задание: "Создать шаблон класса «Однонаправленный список». Реализовать списки объектов класса «Дата»." Я немного не понимаю, чего конкретно от меня хотят. Если заточить шаблон под один класс "Дата", то какой тогда смысл в этом шаблоне?

Добавлено через 9 минут
Если по заданию, то просто надо делать так ?
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
#include <iostream>
 
using namespace std;
 
class Date{
    public:
        int day;
        int mon;
        int year;
 
        Date():day(0),mon(0),year(0) {};
        Date(int d, int m, int y):day(d),mon(m),year(y) {};     
};      
 
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 date"<<endl;
            cout<<"Day: ";
            cin>>current->data->day;
            cout<<"Month: ";
            cin>>current->data->mon;
            cout<<"Year: ";
            cin>>current->data->year;
            cout<<"Enter 0 to exit: ";
            cin>>i;
        };
    };
        
    void out(){
        current=first;
        while(current!=0){
            cout<<"\nData: "<<endl;
            cout<<current->data->day<<"."
            <<current->data->mon<<"."
            <<current->data->year;
            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<Date> obj1;
    cin>>obj1;
    cout<<obj1;
};
 
Текущее время: 12:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru