Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Встроенные функции.

Читайте также:
  1. Агрегатные функции.
  2. Альвеоциты I типа. Особенности строения, функции. Особенности энергетического обмена. Механизм секреции воды.
  3. Бесконечно большие и бесконечно малые функции.
  4. Виртуальные функции.
  5. Встроенные функции
  6. Встроенные функции для работы с массивами

Вводятся при помощи спецификатора 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

mybiblioteka.su - 2015-2024 год. (0.005 сек.)