Стефан Дэвис - С++ для чайников .

Здесь есть возможность читать онлайн «Стефан Дэвис - С++ для чайников .» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2007, ISBN: 2007, Издательство: Издательский дом Вильямс. Компьютерное издательство Диалектика, Жанр: Технические науки, Программирование, Программы, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

С++ для чайников .: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «С++ для чайников .»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

empty-line
1
empty-line
4

С++ для чайников . — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «С++ для чайников .», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

_________________

177 стр. Глава 14. Указатели на объекты

/* Проход по связанному списку */

LinkableClass* pL = pHead ;

while ( pL )

{

/* Выполнение некоторых операций */

/* Переход к следующему элементу */

pL = pL -> pNext ;

}

Сначала указатель pL инициализируется адресом первого объекта в списке ( который хранится в переменной pHead ). Затем программа входит в цикл while . Если указатель pL не нулевой, он указывает на некоторый объект LinkableClass . В этом цикле программа может выполнить те или иные действия над объектом, после чего присвоение pL = pL -> pNext "перемещает" указатель к следующему объекту списка. Если указатель становится нулевым, список исчерпан.

Программа LinkedListData...178

Программа LinkedListData использует связанный список для хранения списка объектов, содержащих имена людей. Программу очень легко расширить, добавив, например, номера социального страхования или вес. Просто я старался сделать программу максимально простой.

/* LinkedListData — хранение данных в связанном списке */

#include

#include

#include

#include

using namespace std ;

/* NameDataSet — хранит имя человека ( этот объект можно легко расширить для хранения другой информации ). */

class NameDataSet

{

public :

char szName[ 128 ] ;

/* Указатель на следующую запись в списке */

NameDataSet* pNext ;

} ;

/* Указатель на первую запись списка */

NameDataSet* pHead = 0 ;

/* Добавление нового члена в список */

void add( NameDataSet* pNDS )

{

pNDS -> pNext = pHead ;

/* Заголовок указывает на новую запись */

pHead = pNDS ;

}

/* getData — чтение имени */

NameDataSet* getData( )

{

_________________

178 стр. Часть 3. Введение в классы

// Читаем имя

char nameBuffer [ 128 ] ;

cout << "\nВведите имя:" ;

cin >> nameBuffer ;

/* Если это имя — 'exit'... */

if ( ( stricmp( nameBuffer , "exit" ) == 0 ) )

{

/* ...вернуть нулевое значение */

return 0 ;

}

/* Новая запись для заполнения */

NameDataSet* pNDS = new NameDataSet ;

/* Заполнение поля имени и обнуление указателя */

strncpy( pNDS -> szName , nameBuffer , 128 ) ;

pNDS -> szName[ 127 ] = '\0' ;

pNDS -> pNext = 0 ;

/* Возврат адреса созданного объекта */

return pNDS ;

}

int main( int nNumberofArgs , char* pszArgs[ ] )

{

setlocale ( LC_ALL , ".1251" ) ; /* печать кириллицы */

cout << "Читаем имена студентов\n"

<< "Введите 'exit' для выхода\n" ;

/* Создание объекта NameDataSet */

NameDataSet* pNDS ;

while ( pNDS = getData( ) )

{

/* Добавление в конец списка */

add( pNDS ) ;

}

/* Итерация списка для вывода записей */

cout << "Записи:\n" ;

pNDS = pHead ;

while ( pNDS )

{

/* Вывод текущей записи */

cout << pNDS -> szName << "\n" ;

/* Получение следующей записи */

pNDS = pNDS -> pNext ;

}

/* Пауза для того, чтобы посмотреть на результат работы программы */

system( "PAUSE" ) ; return 0 ;

}

Несмотря на внушительную длину программа LinkedListData относительно проста - фото 207

Несмотря на внушительную длину, программа LinkedListData относительно проста. Функция main( ) начинается с вызова функции getData( ) , которая считывает элемент NameDataSet с клавиатуры. Если пользователь вводит строку " exit ", getData( ) возвращает нуль. Функция main( ) вызывает функцию add( ) , чтобы добавить элемент, который вернула getData( ) , в конец связанного списка.

_________________

179 стр. Глава 14. Указатели на объекты

Если от пользователя больше не поступает элементов NameDataSet , функция main( ) выводит на экран все элементы списка, используя функцию displayData( ) .

Функция getData( ) выделяет из кучи пустой объект класса NameDataSet . После этого getData( ) ожидает ввода имени для записи его в соответствующее поле нового объекта. Если пользователь вводит в поле имени строку "exit" , функция уничтожает последний созданный объект и возвращает 0 . В противном случае getData( ) считывает фамилию и номер социального страхования, после чего обнуляет указатель pNext и передаёт управление вызывающей функции.

Никогда не оставляйте связывающие указатели не проинициализированными Старая - фото 208

«Никогда не оставляйте связывающие указатели не проинициализированными! Старая поговорка программистов гласит: "Не уверен — обнули".»

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «С++ для чайников .»

Представляем Вашему вниманию похожие книги на «С++ для чайников .» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «С++ для чайников .»

Обсуждение, отзывы о книге «С++ для чайников .» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x