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

Связанные списки - C++

Восстановить пароль Регистрация
 
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
13.11.2012, 20:48     Связанные списки #1
Вопросы в комментариях
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
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
class NameDataSet
{
      public:
             string sName;
             NameDataSet* pNext; //1) это указатель на класс или каждый объект содержит указатель на другой объект?
};
 
NameDataSet* pHead = 0;
void add(NameDataSet* pNDS)
{
     pNDS -> pNext = pHead; //2) Обясните как здесь работает оператор -> ? как я знаю он заменяет конструкцию (*pointer).somefn
     pHead = pNDS;
     }
     NameDataSet* getData() //3) функция возвращает адрес объекта?
     {
                  string name;
                  cout << "Enter the name: ";
                  cin >> name;
                  if (name == "exit")
                  {
                           return 0;
                           }
     NameDataSet* pNDS = new NameDataSet;  //4) зачем здесь виделяеться пямять в куче? И почему она потом не удаляется?
     pNDS -> sName = name; //обясните еще эти строки
     pNDS -> pNext = 0;        //
     return pNDS;                 //
     }
 
 
int main()
{
    cout << " 4itaem imena studentiv" << endl;
    cout << "Enter exit for exit :)" << endl;
    NameDataSet* pNDS;
    while(pNDS = getData())
    {
               add(pNDS);
               }
               cout << "RECORDS: " << endl;
               for(NameDataSet * pInter = pHead; pInter; pInter = pInter ->pNext)
               {
                               cout << pInter->sName << endl;
                               } 
    
    getch();
    return 0;
}
В книжке очень мутно написано, прошу детально разжевать чайнику
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,866
Записей в блоге: 2
Завершенные тесты: 1
13.11.2012, 21:01     Связанные списки #2
C++
1
это указатель на класс или каждый объект содержит указатель на другой объект?
Каждый объект содержит указатель на следующий объект, или на NULL, если элемент последний (все это относится к односвязным спискам).
Цитата Сообщение от coloc Посмотреть сообщение
2) Обясните как здесь работает оператор -> ? как я знаю он заменяет конструкцию (*pointer).somefn
Откройте любую книжку, там написано про "->". Но если уж так невтерпеж, то это обращение к полю pNext объекта на который указывает pNDS.
Цитата Сообщение от coloc Посмотреть сообщение
функция возвращает адрес объекта?
Да. Возвращает указатель.
Цитата Сообщение от coloc Посмотреть сообщение
4) зачем здесь виделяеться пямять в куче? И почему она потом не удаляется?
В куче создается объект и указатель на него возвращается из функции "наружу".
Цитата Сообщение от coloc Посмотреть сообщение
обясните еще эти строки
полю name вновь созданного объекта присваивается то, что мы ввели чуть ранее:
C++
1
2
3
                  string name;
                  cout << "Enter the name: ";
                  cin >> name;
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
13.11.2012, 21:04  [ТС]     Связанные списки #3
Все частично понял еще надо изучать материальную часть
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,866
Записей в блоге: 2
Завершенные тесты: 1
13.11.2012, 21:04     Связанные списки #4
Цитата Сообщение от coloc Посмотреть сообщение
Все частично понял еще надо изучать материальную часть
структуры и указатели на объекты
Yandex
Объявления
13.11.2012, 21:04     Связанные списки
Ответ Создать тему
Опции темы

Текущее время: 19:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru