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

Контейнерный класс типа "Список" без использования STL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование http://www.cyberforum.ru/cpp-beginners/thread70513.html
Добрый день. Нужно сделать задачку на наследование. Есть базовый класс(квадрат), от него наследуется (куб). В классе куб добаляется только один метод нахождение объема. Написал кое какой код, но...
C++ Массивы(двумерный и одномерные) Вот две задачи.... 1:Заданы два массива{xi} и {yi} (i=от 1 до n). Сформировать массив{cj} по правилу cj=yi+xi,если xi>yi cj=xi*max{yi} если xi<yi пары xi=yi в формировании нового массива не... http://www.cyberforum.ru/cpp-beginners/thread70490.html
C++ Операторы повторения
Запрограммировать расчет точек и вывод на экран значений аргумента и функции f=sin(x)/x в виде таблицы.Диапозон изменения аргумента .Количество точек расчета задается с клавиатуры не меньше 3....
C++ Нужно прочитать файл
Всем доброговременисуток!Хочу сделать что нибудь на опене или дыретыХе со своей моделью.Нужно из файла 3ds max'а прочитать список вершин.Но я представления не имею как устроен файл, там много другой...
C++ Разработать и реализовать на языке С следующие функции работой с бинарным деревом: http://www.cyberforum.ru/cpp-beginners/thread70452.html
Разработать и реализовать на языке С следующие функции работой с бинарным деревом: 1. Создание пустого дерева 2. Добавление элемента в дерево. 3. Удаление поддерева с заданной корневой вершиной....
C++ Как очистить консоль после итерации цикла? Как очистить консоль в С++ после итерации цикла или перед функцией,чтобы допустим мы ввели массив,потом консоль очистилась и,к примеру,выдался отсортированный массив и в консоли больше ничего не было... подробнее

Показать сообщение отдельно
RetiF
8 / 8 / 1
Регистрация: 21.12.2008
Сообщений: 36

Контейнерный класс типа "Список" без использования STL - C++

04.12.2009, 18:29. Просмотров 1135. Ответов 1
Метки (Все метки)

Есть базовый класс Component и три производных от него класса: Chipset, SoundCard и VideoAdapter. Нужно описать контейнерный класс Computer типа список, в котором будут храниться объекты этих трёх классов
Не использовать list.h из STL, а создать свой
Делаю так:

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
typedef struct ListElem
{
 Component* Cmp;
 struct ListElem* Next;
};
 
class Computer
{
 public:
    ListElem Head, *iter;
    int countList;
    
    Computer() 
    {
     countList = 0;
     Head.Cmp = NULL;
     Head.Next = NULL;
    }
    ~Computer() {}
    
    void mount(Component* Cmpnt)
    {
     if(Head.Next == NULL)
     {
      countList++;
      Head.Cmp = Cmpnt;
      Head.Next = new ListElem;
      Head.Next->Next = NULL;
     } else {
             countList++;
             iter = Head.Next;
             while(iter != NULL) {iter = iter->Next;}
             iter = new ListElem;
             iter->Cmp = Cmpnt;
             iter->Next = NULL;
            }
    }
};
Создал три объекта классов, производных от базового Component и сделал вот так:
C++
1
2
3
4
Computer Comput;
Comput.mount(&VdAdpt);
Comput.mount(&SndCrd);
Comput.mount(&ChpSt);
Но добавления в список не происходит

Для проверки написал функцию вывода адресов на экран:
C++
1
2
3
4
5
void Printtt()
    {
     cout << Head.Next << endl; iter = Head.Next;
     while(iter != NULL) {iter = iter->Next; cout << iter << endl;}
    }
Выводит только вот это:
C++
1
2
0x2194
0x0000
А должно бы вывести три разных адреса памяти. Я не понимаю, в чём дело?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru