Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 сентября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

Visual C++.NET
Урок 26. Список на примере CPtrList

На этом занятии мы с вами посмотрим, как работать со списоком указателей CPtrList. Элементы такого списка - это указатели типа void*, это означает в частности, что в такой список мы можем добавлять элементы, имеющие тип любого указателя.

Создайте SDI приложение с поддержкой архитектуры Документ-Вид. Добавьте собственный класс CMyClass. В этом классе создайте, например, 2 открытых переменных типа int - m_Data1 и m_Data2. Именно указатели на экземпляры нашего класса CMyClass и будут добавляться к нашему списку. Этот список мы еще не создали. Сделаем это. Для сего объявите в классе документа переменную типа CPtrList:

CPtrList m_list;

Далее добавьте диалоговое окно, на котором разместите 2 edit'а. Создайте класс CAddDlg для диалогового окна, в котором создайте 2 переменных типа int - m_Data1 и m_Data2, связанные с edit'ами. Через это диалоговое окно мы будем добавлять данные в наш список m_list. Подробности по созданию такого окна смотрите в уроке 4.

Код для добавления очередного узла в список будет следующий (его, например, можно добавить в обработчик некоторого пункта меню):

  //Создание диалогового окна.
 
   CAddDlg d;
 
   //Показ диалогового окна.
 
   d.DoModal();
 
   //Создаем новый элемент для списка. 
 
   CMyClass *p = new CMyClass;
 
   p->m_Data1=d.m_Data1;
 
   p->m_Data2=d.m_Data2;
 
   //Добавляем новый элемент в список.
 
   m_list.AddTail(p);

Возможно, что для избавления от ошибок вам надо будет добавить некоторые include - но это мы и так умеем делать.

Как вы видите, добавление очередного узла в список довольно-таки простое - сначала мы создаем новый новый экземляр указателя на CMyClass, далее мы заполняем его данными, полученными от пользователя из диалогового окна. После чего используем метод AddTail класса CPtrList для добавления данных в конец списка. Вместо AddTail можно было использовать AddHead - для добавления узлов в начало списка.



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS