Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Параметры со значениями по умолчанию





Чтобы упростить вызов функции, в ее заголовке можно указать значения параметров по умолчанию. Эти параметры должны быть последними в списке и могут опускаться при вызове функции. Если при вызове параметр опущен, должны быть опущены и все параметры, стоящие за ним. В качестве значений параметров по умолчанию могут использоваться константы, глобальные переменные и выражения:

Int fdnt а. Int b = 0):

void fldnt. Int = 100. char* = 0); /* обратите внимание на пробел между * и

= (без него получилась бы операция сложного присваивания *=) */

void errdnt errValue = errno); // errno - глобальная переменная

fdOO); f(a. 1): // варианты вызова функции f

fl(a): fl(a. 10); fl(a. 10. "Vasia"): // варианты вызова функции fl

fl(a,."Vasia") // неверно!

 

Функцию можно вызвать через указатель на нее. Для этого объявляется указатель соответствующего типа и ему с помощью операции взятия адреса присваивается адрес функции;

void f (i n t а) { / *... * / } // определение функции

void (*pf)(int); // указатель на функцию

….

pf = &f; // указателю присваивается адрес функции

/ / (можно написать pf = f;)

pf(10); // функция f вызывается через указатель pf

// (можно написать (*pf)(10))

Для того чтобы сделать программу легко читаемой, при описании указателей на функции используют переименование типов (typedef). Можно объявлять массивы указателей на функции (это может быть полезно, например, при реализации меню);

// Описание типа PF как указателя

// на функцию с одним параметром типа int;

typedef void (*PF)(int);

// Описание и инициализация массива указателей:

PF menu[] = {&new. &open. &save};

menu[l](10); // Вызов функции open

Здесь new, open и save — имена функций, которые должны быть объявлены ранее.

Указатели на функции передаются в подпрограмму таким же образом, как и параметры

других типов:

#include <1ostream.h>

typedef void (*PF)(int);

void fKPF pf){ // функция f l получает в качестве параметра указатель типа PF

pf(5); // вызов функции, переданной через указатель

}

void fdnt 1){cout «1:}

Int ma1n(){

f l (f);

return 0:

}

Тип указателя и тип функции, которая вызывается посредством этого указателя, должны совпадать в точности.

 

Date: 2016-07-25; view: 325; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию