Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1

Кент Рейсдорф. BORLAND C++BUILDER. Страница 67

Правила работы с указателями и динамическим распределением памяти

? Инициализируйте указатели нулем, если они не используются немед­ленно.

? Следите за тем, чтобы не применить оператор delete к указателю дваж­ды.

? Можно без опасений применять оператор delete к указателю, имеющему значение 0 или NULL.

? Устанавливайте указатели в NULL или 0 после уничтожения объектов.

? Разыменовывайте указатель для получения объекта, на который он указывает.

Функции в Си++

Функции Си++ предоставляют программисту дополнительные возможнос­ти по сравнению с функциями Си. В этом разделе рассматривается следующее:

? Перегрузка функций

? Задание аргументов по умолчанию

? Функции-члены класса

? Подставляемые функции

Перегрузка функций

Си++ позволяет вам иметь несколько функций с одинаковым именем, но различными наборами параметров.

Перегрузка функции (function overloading) — это определение двух или более функций с одинаковым именем, но разными наборами параметров.

Функции, имеющие общее имя, называются перегруженными (over­loaded).

В первый день я приводил в качестве примера программу, которая со­держала функцию multiply(). Эта функция принимала в качестве аргументов два целых числа, перемножала их и возвращала результат. Но как быть, если вы захотите перемножить два числа с плавающей точкой? В Си для этого понадобилось бы две функции:

Не проще было бы иметь одну функцию multiply(), достаточно «умную», чтобы определить, когда вы хотите перемножить short, int или long? В Си++ это возможно благодаря перегрузке функций. Вот как выглядят объявления для перегруженных функций:

Вы по-прежнему должны написать отдельные функции для каждого из этих объявлений, но теперь все функции используют одно и то же имя. Компилятор выберет нужную функцию, основываясь на аргументах, которые вы ей передаете. Например:

Web-дизайн (с) 2010 All rights reserved