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

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

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

Наследование и абстрактный класс - C++

08.12.2012, 23:18. Просмотров 307. Ответов 2
Метки нет (Все метки)

Вот сделал список с такими условиями
вставка элемента из головы (хвоста) в заданном месте;
вывода списка на экран;
поиск элемента списка;
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
 
template<class T> class List
{
public:
        List()
        {
              head=NULL;
              tail=NULL;
        };        
        ~List()
        {
                while(head)
                {
                    tail=head->next;
                    delete head;
                    head=tail;
                }
        }
 
        void push_back(T val)
        {
                Node* Temp;
                Temp=new Node;
                Temp->elem=val;
                if(head==0)
                {
                        head=Temp;
                        tail=Temp;
                        return;
                }
                tail->next=Temp;
                tail=Temp;
        }
 
        void print()
        {
                if (head==0)
                {
                        cout << "List is empty!";
                }
                for(Node* ptr=head; ptr!=0; ptr=ptr->next)
                {
                        cout<<ptr->elem<<" ";
                }
                cout<<"\n";
        }
 
       
 void push_front(T val)
        {
                Node* Temp;
                Temp=new Node;
                Temp->elem=val;
                Temp->next=head;
                head=Temp;
        }
 
 
        void find(T val)
        {
                if(head==0)
                {
                        cout <<  "List is empty!\n";
                }
                for(Node* ptr=head; ptr!=0; ptr=ptr->next)
                {
                        if(ptr->elem=val)
                                cout<<"Element "<< val <<" is found\n";
                        return;
                }
                cout<<"Element "<< val <<" is not found\n";
        }
        
        void insert(T val)
        {
                if(head==0)
                {
                        push_front(val);
                        return;
                }
                Node* Temp=new Node;
                Temp->elem=val;
                Node* founded=head;
                for(founded; founded!=0; founded=founded->next)
                {
                        if(founded->elem<val)
                                break;
                }
                if(founded==0)
                {
                        push_front(val);
                        return;
                }
                Temp->next=founded->next;
                founded->next=Temp;
        }
private:
        struct Node
        {
                Node()
                {
                 next=0;
                 elem=0;
                }
                Node* next;
                T elem;
        };
 
        Node* head;
        Node* tail;
};
 
 
int main()
{
        List<int> Lst;
        Lst.push_front(5);
        Lst.push_back(10);
        Lst.push_back(15);
        Lst.push_front(1);
        Lst.push_back(25);
        Lst.push_back(4);
        Lst.print();
        Lst.find(15);
        Lst.print();
        getch();
        return 0;
}
Теперь нужно спроектировать на основе этого списка абстрактный класс и создать наследника. Помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2012, 23:18     Наследование и абстрактный класс
Посмотрите здесь:

Абстрактный класс. Наследование - C++
class polygon{ int height, width, point p; e_color color; public: virtual ~polygon(){} ...

Абстрактный базовый класс и множественное наследование - C++
Общая постановка. Создать программу с абстрактным базовым классом и множественным наследованием. Помогите разобраться почему не работает,...

Абстрактный класс, одиночное наследование, далее множественное - C++
Добрый вечер! никак не могу найти информацию о том, как правильно реализуется следующее действие: есть абстрактный класс А, от него...

Абстрактный базовый класс и множественное наследование (либо иерархия классов) - C++
Помогите пожалуйста с задачей. Кое-что написал но еще далеко не все. Все ли пока правильно? Мобильные телефоны (наименование,...

абстрактный класс - C++
не компилирует abcd.cpp //abcd.h #include &lt;cstring&gt; #ifndef _ABCD_H_ #define _ABCD_H_ class ABCd { private: ...

Абстрактный класс - C++
Есть базовый абстрактный класс. От него - 2 производных класса. Проблемы: 1) Понимаю, что я не правильно вызываю мои чисто вирт....

Абстрактный класс - C++
вот у меня есть классы: class CCommand { public: virtual ~CCommand() {}; virtual void execute(CShape *selection)=0; virtual...

Абстрактный класс в С++ - C++
Здравствуйте) Начаю изучать классы, можете мне показать абстрактные класс с перегруженным конструктором и наследованием. Например класс...

Абстрактный класс - C++
Друзья, подскажите пожалуйста. Как, вот в этом примере с виртуальной функцией, реализовать уже как абстрактный базовый класс, т.е. с чисто...

Абстрактный класс - C++
Здравствуйте, скажит пожалуйста: как создать абстрактный базовый класс Triad c виртуальными методами увеличения на 1 ,и производные классы...

List и абстрактный класс - C++
Доброго времени суток. Есть интересная ситуация. Допустим у нас есть абстрактный клас Book. class Book { public: Book(void); ...

абстрактный базовый класс - C++
Создать абстрактный базовый класс с виртуальной функцией – объем. Создать производные классы: параллелепипед, пирамида, шар со своими...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.12.2012, 23:23     Наследование и абстрактный класс #2
Ну...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template<typename T>
class IList {
public:
    virtual void push_back(T val) = 0;
    virtual void push_front(T val) = 0;
    virtual void find(T val) = 0;
    virtual void insert(T val) = 0;
    virtual void print() = 0;
 
    virtual ~IList() {}
};
 
template <typename T>
class LinkedList : public IList<T> {
    /* код вашего List<T> */
};
SirAsgard
1 / 1 / 0
Регистрация: 20.04.2012
Сообщений: 46
08.12.2012, 23:37  [ТС]     Наследование и абстрактный класс #3
Спасибо.
Ответ Создать тему
Опции темы

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