|
||||
Указатель на функцию.Указатель на функцию. Указатель на функцию (function pointer) хранит адрес функции. По сути указатель на функцию содержит адрес первого байта в памяти, по которому располагается выполняемый код функции. Самым распространенным указателем на функцию является ее имя. С помощью имени функции можно вызывать ее и получать результат ее работы. Но также указатель на функцию мы можем определять в виде отдельной переменной с помощью следующего синтаксиса: тип (*имя_указателя) (параметры); Здесь тип представляет тип возвращаемого функцией значения. имя_указателя представляет произвольно выбранный идентификатор в соответствии с правилами о наименовании переменных. И параметры определяют тип и название параметров через запятую при их наличии. Например, определим указатель на функцию: void (*message) ();> В данном случае определен указатель, который имеет имя message. Он может указывать на функции без параметров, которые возвращают тип void (то есть ничего не возвращают). Используем указатель на функцию: #include <iostream>
void hello(); void goodbye();
int main() { void (*message)(); message=hello; message(); message = goodbye; message(); return 0; } void hello() { std::cout << "Hello, World" << std::endl; } void goodbye() { std::cout << "Good Bye, World" << std::endl; } Указателю на функцию можно присвоить функцию, которая соответствует указателю по возвращаемому типу и спецификации параметров: message=hello; То есть в данном случае указатель message теперь хранит адрес функции hello. И посредством обращения к указателю мы можем вызвать эту функцию: message(); В качестве альтернативы мы можем обращаться к указателю на функцию следующим образом (*message)();:
|
||||
|