Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1
Кент Рейсдорф. BORLAND C++BUILDER. Страница 67
Правила работы с указателями и динамическим распределением памяти
? Инициализируйте указатели нулем, если они не используются немедленно.
? Следите за тем, чтобы не применить оператор delete к указателю дважды.
? Можно без опасений применять оператор delete к указателю, имеющему значение 0 или NULL.
? Устанавливайте указатели в NULL или 0 после уничтожения объектов.
? Разыменовывайте указатель для получения объекта, на который он указывает.
Функции Си++ предоставляют программисту дополнительные возможности по сравнению с функциями Си. В этом разделе рассматривается следующее:
? Перегрузка функций
? Задание аргументов по умолчанию
? Функции-члены класса
? Подставляемые функции
Си++ позволяет вам иметь несколько функций с одинаковым именем, но различными наборами параметров.
Перегрузка функции (function overloading) — это определение двух или более функций с одинаковым именем, но разными наборами параметров.
Функции, имеющие общее имя, называются перегруженными (overloaded).
В первый день я приводил в качестве примера программу, которая содержала функцию multiply(). Эта функция принимала в качестве аргументов два целых числа, перемножала их и возвращала результат. Но как быть, если вы захотите перемножить два числа с плавающей точкой? В Си для этого понадобилось бы две функции:
Не проще было бы иметь одну функцию multiply(), достаточно «умную», чтобы определить, когда вы хотите перемножить short, int или long? В Си++ это возможно благодаря перегрузке функций. Вот как выглядят объявления для перегруженных функций:
Вы по-прежнему должны написать отдельные функции для каждого из этих объявлений, но теперь все функции используют одно и то же имя. Компилятор выберет нужную функцию, основываясь на аргументах, которые вы ей передаете. Например: