Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Чтобы лучше понять выигрыш от перегрузки функций, рассмотрим три функции изстандартной библиотеки: abs(), labs() и fabs(). Они были впервые определены в языке С, а затем ради совместимости включены в C++. Функция abs() возвращает абсолютное значение (модуль) Целого числа, функция labs() возвращает модуль длинного целочисленного значения (типа long), A fabs() — модуль значения с плавающей точкой (типа double). Поскольку язык С не Поддерживает перегрузку функций, каждая функция должна иметь собственное имя, несмотря На то, что все три функции выполняют, по сути, одно и то же действие. Это делает ситуацию Сложнее, чем она есть на самом деле. Другими словами, при одних и тех же действиях Программисту необходимо помнить имена всех трех (в данном случае) функций вместо одного. Задание аргументов, передаваемых функции по умолчанию, синтаксически аналогично Инициализации переменных. Рассмотрим следующий пример, в котором объявляется функция Myfunc(), принимающая один аргумент типа double с действующим по умолчанию значением 0.0 и один символьный аргумент с действующим по умолчанию значением 'Х'. void myfunc(double num = 0.0, char ch = 'Х') { . . . } После такого объявления функцию myfunc() можно вызвать одним из трех следующих Способов. myfunc(198.234, 'A'); // Передаем явно заданные значения. myfunc(10.1); // Передаем для параметра num значение 10.1, а для параметра ch позволяем применить аргумент, задаваемый по умолчанию ('Х'). myfunc(); // Для обоих параметров num и ch позволяем применить аргументы, Задаваемые по умолчанию. Аргумент, передаваемый функции по умолчанию, представляет собой значение, которое будет автоматически передано параметру функции в случае, если аргумент, соответствующий этому параметру, явным образом не задан. #include <iostream> Using namespace std; void clrscr(int size=25); Int main() { Int i; for(i=0; i<30; i++) cout << i << '\n'; clrscr(); // Очищаем 25 строк. for(i=0; i<30; i++) cout << i << '\n'; clrscr(10); // Очищаем 10 строк. Return 0; }
|