Читайте также: |
|
Вводятся при помощи спецификатора inline и используются для повышения быстродействия.
inline float Sum(float a1,float a2)
{return a1+a2}
Вызов осуществляется не через стек, а подстановкой кода функции в место ее вызова.
Ограничения:
- 5 операторов максимум;
- не должно быть операторов цикла; переключателей и goto.
Перегрузка функций
В языке С++ можно определить несколько одноименных функций, отличающихся количеством и типом параметров. Нельзя перегружать функцию, если она отличается только типом возвращаемого значения.
Пример перегрузки функции:
Определить одноименные функции, которые считают площади круга и треугольника.
float S(float r) // площадь круга
{puts(“s круга “);
return 3.14*r*r}
Float S(float x, float H)
{puts (“s треугольника”);
return 1\2 * x*H}
Параметры функции main.
int main (int argc, char * argv[ ]) argv[ ] - массив символьных строк из командной строки DOS
argv[ 0] – полное имя файла с маршрутом к каталогу, где хранится программа. argv[ 1] первый параметр после имени программы в командной строке, argv[ 2] - второй и т.д.
Параметр argc определяет количество параметров в командной строке, не может быть меньше 1
Передача функции в качестве параметра.
Имя функции – адрес начала ее кода в оперативной памяти. Для хранения таких адресов необходимо определить указатель на функцию.
Это можно сделать, определив тип функции и затем объявить указатель на этот тип:
typedef float ft (float); ft *ftp;
Возможна другая запись:
typedef float(*ftp)(float) – объявление типа – указателя на функцию возвращающую значение типа float и имеющую 1 параметр типа float.
Пример: программа с меню из двух пунктов
typedef void(*mn)();
mn M_c[2]
Void vb1()
{ puts (“Выбор 1”); getchar ();}
Void vb2 ()
{ puts (“Выбор 2”); getchar();}
Void b_t ()
{ M_c [0] = vb1;
M_c [1] = vb2;}
Main (void)
{ int c;
B_t ();
do { puts (“Выбор 1”);
puts(“выбор 2”);
puts(“Выход “);
cin<<c;
if (c >=1 && c<=2)
(*M _c [ c- 1 ]) ();
else break;}
while (1);}
Шаблоны функций
Шаблоны представляют собой обобщающие определения функций, из которых компилятор может автоматически сделать функцию с заданными параметрами. Шаблоны позволяют пользователю оперировать параметризованными типами. Нет необходимости переписывать функцию при изменении типа параметра.
template < список аргументов>
Тип возвращаемого значения имя функции (список параметров функции)
{тело функции}
Функция обмена.
template <class T >
void Exchange (T&x, T &y)
{T temp;
temp=x; x =y; y = temp; }
Вызываются шаблонные функции, как обычные.
Пример вызова:
float x=3.6, y=7.5;
char c=3, b=5;
Exchange(x,y);
Дата добавления: 2015-07-08; просмотров: 174 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Функции форматного ввода и вывода данных | | | Методология SADT и стандарты IDEF |