- •Создание простой программы
- •Компиляция вашей программы
- •Создание второй программы
- •Изучение синтаксических ошибок
- •Что вам необходимо знать
- •Взгляд на операторы программы
- •Представление об операторе #include
- •Что такое void main(void)
- •Использование void
- •If errorlevel 0 if not errorlevel 1 goto successful if errorlevel 1 if not errorlevel 2 goto no_file if errorlevel 2 if not errorlevel 3 goto no_paper rem Далее идут другие команды
- •Представление о группирующих операторах { }
- •Использование cout для отображения вывода на экран
- •Что вы должны знать
- •Урок з. Вывод сообщений на экран
- •Использование cout для вывода чисел
- •Вывод нескольких значений одновременно
- •Использование специальных символов вывода
- •Другие специальные символы
- •Вывод восьмеричных и шестнадцатеричных значений
- •Вывод на стандартное устройство ошибок
- •Управление шириной вывода
- •Что вам необходимо знать
- •Урок 4. Программы хранят информацию в переменных
- •Объявление переменных в программах
- •Смысловые имена переменных
- •Слова, которые нельзя использовать для имен переменных
- •Присваивание значения переменной
- •Присваивание значения при объявлении
- •Использование значения переменной
- •Превышение диапазона значений переменной
- •Представление о точности
- •Использование комментариев для улучшения чтения ваших программ
- •Что вам необходимо знать
- •Урок 5. Выполнение простых операций
- •Основные математические операции
- •Увеличение значения переменной на 1
- •Представление о префиксной (до) и постфиксной (после) операциях увеличения
- •Старшинство операций
- •Следите за ошибками переполнения при арифметических операциях
- •Что вам необходимо знать
- •Урок 6. Чтение ввода с клавиатуры
- •Первое знакомство с cin
- •Следите за ошибками переполнения
- •Следите за ошибками несовпадения типов
- •Чтение символьных данных
- •Чтение слов с клавиатуры
- •Что вам необходимо знать
- •Урок 7. Программа принимает решение
- •Сравнение двух значений
- •Знакомство с оператором if
- •Представление о простых и составных операторах
- •Оператор else
- •Применение составных операторов для else
- •If (условие_истинно) оператор; else оператор;
- •If (условие_истинно)
- •Использование отступов для улучшения удобочитаемости вашей программы
- •Проверка двух или более условий
- •Обработка нескольких условий
- •Использование оператора switch
- •Что вам необходимо знать
- •Урок 8. Повторение одного или нескольких операторов
- •Повторение операторов указанное число раз
- •Изменение и увеличение цикла for
- •Взгляд на цикл while
- •Выполнение операторов по крайней мере один раз
- •Что вам необходимо знать
- •Создание и использование ваших первых функций
- •Программа может передавать информацию в функции
- •Функции могут возвращать результат вызвавшей функции
- •Функции, которые не возвращают значение
- •Использование возвращаемого функцией значения
- •Представление о прототипах функций
- •Что вам необходимо знать
- •Урок 10 изменение значений параметров
- •Почему функции обычно не могут изменить значения параметров
- •Изменение значения параметра
- •Второй пример
- •Что вам необходимо знать
- •Использование функций библиотеки этапа выполнения
- •Изучение функций библиотеки этапа выполнения
- •Что вам необходимо знать
- •Урок 12. Локальные переменные и область видимости
- •Объявление локальных переменных
- •О конфликте имен
- •Глобальные переменные
- •Если имена глобальных и локальных переменных конфликтуют
- •Представление об области видимости переменных
- •Что вам необходимо знать
- •Первое знакомство с перегрузкой функций
- •Когда необходима перегрузка
- •Что вам необходимо знать
- •Ссылка является псевдонимом
- •Использование ссылок в качестве параметров
- •Рассмотрим второй пример
- •Правила работы со ссылками
- •Чт0 вам необходимо знать
- •Урок 15. Значения параметров по умолчанию
- •Определение значений по умолчанию
- •Правила для пропуска значений параметров
- •Что вам необходимо знать
- •Урок 16. Хранение значений в массивах
- •Объявление переменной массива
- •Обращение к элементам массива
- •Использование индексной переменной
- •Инициализация массива при объявлении
- •Передача массивов в функции
- •Что вам необходимо знать
- •Урок 17. Символьные строки
- •Объявление символьных строк в программах
- •Как 'а' отличается от "а"
- •Инициализация символьной строки
- •Передача строк в функции
- •Преимущества того, что null представляет собой ascii 0
- •Использование строковых функций библиотеки этапа выполнения
- •Что вам необходимо знать
- •Урок 18. Хранение связанной информации в структурах
- •Объявление структуры
- •Использование элементов структуры
- •Структуры и функции
- •Функции, изменяющие элементы структуры
- •Что вам необходимо знать
- •Что вам необходимо знать
- •Урок 20. Указатели
- •Использование указателя на символьную строку
- •Второй пример
- •Уменьшение количества операторов
- •Использование указателей с другими типами массивов
- •О математике указателя
- •Что вам необходимо знать
- •Представление об объектах и объектно-ориентированном программировании
- •Определение методов класса вне класса
- •Второй пример
- •Что вам необходимо знать
- •Сокрытие информации
- •Использование общих и частных элементов класса
- •Использование оператора глобального разрешения для элементов класса
- •Частные элементы класса не всегда являются данными
- •Что вам необходимо знать
- •Урок 23. Конструктор и деструктор
- •Создание простого конструктора
- •Конструкторы и параметры по умолчанию
- •Перегрузка конструкторов
- •Представление о деструкторе
- •Что вам необходимо знать
- •Урок 24. Перегрузка операторов
- •Перегрузка операторов плюс и минус
- •Второй пример
- •Операторы, которые Вbl he можете перегрузить
- •Что вам необходимо знать
- •Урок 25. Статические функции и элементы данных
- •Совместное использование элемента данных
- •Использование элементов с атрибутами public static, еслиобъекты не существуют
- •Использование статических функций-элементов
- •Что вам необходимо знать
- •Урок 26. Наследование
- •Простое наследование
- •Второй пример
- •Что такое защищенные элементы
- •Разрешение конфликта имен
- •Что вам необходимо знать
- •Простой пример
- •Построение иерархии классов
- •Что вам необходимо знать
- •Определение друзей класса
- •Ограничение количества друзей
- •Что вам необходимо знать
- •Создание простого шаблона функции
- •Шаблоны, которые используют несколько типов
- •Что вам необходимо знать
- •Создание шаблона класса
- •Что вам необходимо знать
- •Использование оператора new
- •Освобождение памяти, если она больше не нужна
- •Второй пример
- •Что вам необходимо знать
- •Создание обработчика для операций со свободной памятью
- •Создание собственных операторов new Иdelete
- •Что вам необходимо знать
- •Урок 33. Дополнительные возможности cin и cout
- •Что внутри iostream.H
- •Использование cout
- •Использование символа-заполнителя
- •Управление цифрами значений с плавающей точкой
- •Вывод и ввод одного символа за один раз
- •Чтение ввода с клавиатуры по одному символу за раз
- •Чтение с клавиатуры целой строки
- •Что вам необходимо знать
- •Вывод в файловый поток
- •Чтение из входного файлового потока
- •Чтение целой строки файлового ввода
- •Определение конца файла
- •Проверка ошибок при выполнении файловых операций
- •Закрытие файла, если он больше не нужен
- •Управление открытием файла
- •Выполнение операций чтения и записи
- •Что вам необходимо знать
- •Урок 35 встроенные функции и ассемблерные коды
- •Встроенные функции
- •Использование ключевого слова inline
- •Встроенные функции и классы
- •Использование операторов языка ассемблера
- •Что вам необходимо знать
- •Доступ к argv и argc
- •Выполнение цикла, пока argv не содержит null
- •Трактовка argv как указателя
- •Использование аргументов командной строки
- •Доступ к переменным среды операционной системы
- •Что вам необходимо знать
- •Использование именованных констант
- •Использование именованных констант для упрощения изменения кода
- •Замена выражений макрокомандами
- •Чем макрокоманды отличаются от функций
- •Использование макрокоманд предоставляет большую гибкость
- •Что вам необходимо знать
- •Что такое полиморфизм
- •Создание полиморфного объекта-телефона
- •Что такое чисто виртуальные функции
- •Что вам необходимо знать
- •Использование оператора throw для генерации исключительной ситуации
- •Определение обработчика исключительной ситуации
- •Использование элементов данных исключительной ситуации
- •Обработка неожиданных исключительных ситуаций
- •Объявление генерируемых функцией исключительных ситуаций
- •Исключительные ситуации и классы
- •Что вам необходимо знать
Использование элементов с атрибутами public static, еслиобъекты не существуют
Как вы только что узнали, при объявлении элемента класса как static этот элемент совместно используется всеми объектами данного класса. Однако возможны ситуации, когда программа еще не создала объект, но ей необходимо использовать элемент. Для использования элемента ваша программа должна объявить его как public и static. Например, следующая программа USЕ_MBR.CPP использует элемент page_count из классаbook_series, даже если объекты этого класса не существуют:
#include <iostream.h>
#include <string.h>
class book_series
{ public: static int page_count; private: char title [64]; char author[64]; float price; };
int book_series::page_count;
void main(void) { book_series::page_count = 256; cout << "Текущее значение page_count равно " << book_series::page_count << endl; }
В данном случае, поскольку класс определяет элемент класса page_countкак public, программа может обратиться к этому элементу класса, даже если объекты класса book_series не существуют.
Использование статических функций-элементов
Предыдущая программа иллюстрировала использование статическихэлементов данных. Подобным образом C++ позволяет вам определитьстатические функции-элементы (методы). Если вы создаете статическийметод, ваша программа может вызывать такой метод, даже если объекты не были созданы. Например, если класс содержит метод, который может быть использован для данных вне класса, вы могли бы сделать этот методстатическим. Ниже приведен класс menu, который использует esc-последовательность драйвера ANSI для очистки экрана дисплея. Если в вашей системе установлен драйвер ANSI.SYS, вы можете использовать метод clear_screen для очистки экрана. Поскольку этот метод объявлен какстатический, программа может использовать его, даже если объекты типаmenu не существуют. Следующая программа CLR_SCR.CPP использует метод clear_screen для очистки экрана дисплея:
#include <iostream.h>
class menu
{ public: static void clear_screen(void); // Здесь должны быть другие методы private: int number_of_menu_options; };
void menu::clear_screen(void)
{ cout << '\033' << "[2J"; }
void main(void)
{ menu::clear_screen(); }
Так как программа объявляет элемент clear_screen как статический, она может использовать эту функцию для очистки экрана, даже если объекты типа menu не существуют. Функция clear_screen использует esc-последовательность ANSI Esc[2J для очистки экрана.
Использование в ваших программах методов класса
По мере создания методов класса возможны ситуации, когда функция, созданная вами для использования классом, может быть полезна для операций вашей программы, которые не включают объекты класса. Например, в классеmenu была определена функция clear_screen, которую вы, возможно, захотите использовать в программе. Если ваш класс содержит метод, который вы захотите использовать вне объекта класса, поставьте перед его прототипом ключевое слово static и объявите этот метод как public:
public: static void clear_screen(void);
Внутри вашей программы для вызова такой функции используйте оператор глобального разрешения, как показано ниже:
menu::clear_screen();