Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Самоучитель С++ - Шилдт Г.

Шилдт Г. Самоучитель С++ — Спб.: БВХ-Петербург, 2003. — 688 c.
ISBN 5-7791-0086-1
Скачать (прямая ссылка): samouchitelc2003.djvu
Предыдущая << 1 .. 9 10 11 12 13 14 < 15 > 16 17 18 19 20 21 .. 206 >> Следующая

char si [80], s2 [80];
strcpy(sl, "привет");
rev_str(si, s2) ; // измененная строка оказывается в s2,
// si не меняется rev_str(sl); // измененная строка возвращается в si
5. Дана следующая программа, написанная в соответствии с новым стилем программирования на C++. Покажите, как превратить ее в программу старого стиля.
tinclude <iostream>
using namespace std;
int f (inta) ; int inain()
{
cout « f (10) ;
return 0;
}
int f(int a)
{
return a * 3.1416;
6. Что представляют собой данные типа bool?
Глава 2
Введение в классы
В этой главе вводятся понятия классов и объектов. В следующих нескольких важнейших разделах фактически описаны почти все аспекты программирования на C++, поэтому советуем вам читать повнимательнее.
Повторение пройденного
Перед тем как продолжить, необходимо правильно ответить на следующие вопросы и сделать упражнения.
1. Напишите программу, использующую стиль ввода/вывода C++ для ввода строки и затем вывода на экран ее длины.
2. Создайте класс, который содержит информацию об имени и адресе. Храните всю эту информацию в символьных строках закрытой части класса. Включите в класс открытую функцию для запоминания имени и адреса. Также включите открытую функцию, которая выводит эти имя и адрес на экран. (Назовите эти функции store() и display().)
3. Создайте перегружаемую функцию rotate(), которая циклически сдвигает влево свой аргумент и возвращает результат. Перегрузите ее так, чтобы она работала с целыми (int) и длинными целыми (long). (Сдвиг по кольцу аналогичен обычному сдвигу, за исключением того, что выдвигаемый с одного конца слова бит появляется на другом его конце.)
4. Что неправильно в следующем фрагменте?
ttinclude <iostream> using namespace std;
class myclass { int i; public:
44.
Самоучитель C+ +
int main ()
myclass ob;
оЪЛ - 10;
2.1, Конструкторы и деструкторы
Если вы писали очень длинные программы, то знаете, что в некоторых частях программы обычно требуется инициализация. Необходимость в инициализации еще более часто проявляется при работе с объектами. Действительно, если обратиться к реальным проблемам, то, фактически, для каждого создаваемого вами объекта требуется какого-то вида инициализация. Для разрешения этой проблемы в C++ имеется функция-конструктор (constructorfunction), включаемая в описание класса. Конструктор класса вызывается всякий раз при создании объекта этого класса. Таким образом, любая необходимая объекту инициализация при наличии конструктора выполняется автоматически.
Конструктор имеет то же имя, что и класс, частью которого он является, и не имеет возвращаемого значения. Например, ниже представлен небольшой класс с конструктором:
ttinclude <iostream> using namespace std;
class myclass { int a; public:
myclass (); // конструктор void show () ;
);
myclass::myclass{ )
{
cout « "В конструкторе\n"; a=10;
}
void myclass : :show 0
{
Гпава 2.
Введение в классы
45
int main ( }
{
myclass cJb; ob.show{) ; return 0;
}
В этом простом примере значение а инициализируется конструктором myclass(). Конструктор вызывается тогда, когда создается объект ob. Объект, в свою очередь, создается при выполнении инструкции объявления объекта. Важно понимать, что в C++ инструкция объявления переменной является "инструкцией действия". При программировании на С инструкции объявления переменных понимаются просто как создание переменных. Однако в C++, поскольку объект может иметь конструктор, инструкция объявления переменной может вызывать выполнение записанных в конструкторе действий.
Обратите внимание, как определяется конструктор myclass(). Как уже говорилось, он не имеет возвращаемого значения. В соответствии с формальными правилами синтаксиса C++ конструктор не должен иметь возвращаемого значения.
Для глобальных объектов конструктор объекта вызывается тогда, когда начинается выполнение программы. Для локальных объектов конструктор вызывается всякий раз при выполнении инструкции объявления переменной.
Функцией, обратной конструктору, является деструктор (destructor). Эта функция вызывается при удалении объекта. Обычно при работе с объектом в момент его удаления должны выполняться некоторые действия. Например, при создании объекта для него выделяется память, которую необходимо освободить при его удалении. Имя деструктора совпадает с именем класса, но с символом " (тильда) в начале. Пример класса с деструктором:
Itinclude <iostream> using namespace std;
class myclass ( int a ; public:
myclass (}; // конструктор ~myclass (); // деструктор void show () r
¦
myclass : :myclass( )
{
cout << "Содержимое конструктора\п"; a = 10?
46________________________________________________________________Самоучитель C++
myclass::-myclass()
{
cout « "Удаление. ,.\n";
Предыдущая << 1 .. 9 10 11 12 13 14 < 15 > 16 17 18 19 20 21 .. 206 >> Следующая