- •Создание простой программы
- •Компиляция вашей программы
- •Создание второй программы
- •Изучение синтаксических ошибок
- •Что вам необходимо знать
- •Взгляд на операторы программы
- •Представление об операторе #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 для генерации исключительной ситуации
- •Определение обработчика исключительной ситуации
- •Использование элементов данных исключительной ситуации
- •Обработка неожиданных исключительных ситуаций
- •Объявление генерируемых функцией исключительных ситуаций
- •Исключительные ситуации и классы
- •Что вам необходимо знать
Что вам необходимо знать
Конструкторы и деструкторы представляют собой специальные функции класса, которые ваша программа автоматически вызывает при создании или уничтожении объекта. Большинство программ используют конструктор для инициализации элементов данных класса. Простые программы, создаваемые сейчас вами, вероятно, не потребуют использования деструктора. Из урока 24 вы узнаете, как перегружать операторы. Другими словами, вы можете переопределить символ плюс таким образом, что он будет добавлять содержимое одной строки к другой. Как вы уже знаете, тип (например, char, float и int) определяет набор значений, которые может хранить переменная, и набор операций, которые ваши программы могут выполнять над этой переменной. Когда вы определяете класс, вы по существу определяете тип. C++ позволяет вам указать, как ведут себя операторы с данным типом. До изучения урока 24 убедитесь, что освоили следующие основные концепции:
Конструктор представляет собой специальную функцию, которую ваша программа автоматически вызывает каждый раз при создании объекта. Конструктор имеет такое же имя, как и класс объекта.
Конструктор не имеет возвращаемого значения, но вы не указываете ему тип void. Вместо этого вы просто не указываете возвращаемое значение вообще.
Когда ваша программа создает объект, она может передать параметры конструктору во время объявления объекта.
C++ позволяет вам перегружать конструкторы и разрешает использовать значения по умолчанию для параметров.
Деструктор представляет собой специальную функцию, которую ваша программа вызывает автоматически каждый раз при уничтожении объекта. Деструктор имеет такое же имя, как и класс объекта, но его имя предваряется символом тильды (~).
Урок 24. Перегрузка операторов
Как вы уже знаете, тип переменной определяет набор значений, которые она может хранить, а также набор операций, которые можно выполнять над этой переменной. Например, над значением переменной типа int ваша программа может выполнять сложение, вычитание, умножение и деление. С другой стороны, использование оператора плюс для сложения двух строк лишено всякого смысла. Когда вы определяете в своей программе класс, то по существу вы определяете новый тип. А если так, C++ позволяет вам определить операции, соответствующие этому новому типу.
Перегрузка оператора состоит в изменении смысла оператора (например, оператора плюс (+), который обычно в C++ используется для сложения) при использовании его с определенным классом. В данном уроке вы определите класс string и перегрузите операторы плюс и минус. Для объектов типа string оператор плюс будет добавлять указанные символы к текущему содержимому строки. Подобным образом оператор минус будет удалять каждое вхождение указанного символа из строки. К концу данного урока вы изучите следующие основные концепции:
Вы перегружаете операторы для улучшения удобочитаемости ваших программ, но перегружать операторы следует только в том случае, если это упрощает понимание вашей программы.
Для перегрузки операторов программы используют ключевое слово C++ operator.
Переопределяя оператор, вы указываете функцию, которую C++ вызывает каждый раз, когда класс использует перегруженный оператор. Эта функция, в свою очередь, выполняет соответствующую операцию.
Если ваша программа перегружает оператор для определенного класса, то смысл этого оператора изменяется только для указанного класса, оставшаяся часть программы будет продолжать использовать этот оператор для выполнения его стандартных операций.
C++ позволяет перегружать большинство операторов, за исключением четырех, перечисленных в таблице 24, которые программы не могут перегружать.
Перегрузка операторов может упростить наиболее общие операции класса и улучшить читаемость программы. Найдите время для эксперимента спрограммами, представленными в этом уроке, и вы обнаружите, что перегрузка операторов выполняется очень просто.
