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

Шаблоны функций

Читайте также:
  1. A) отличие от сферы частичных функций личности;
  2. В процессах социального взаимодействия формирующая среда выполняет ряд функций.
  3. Вычисление функций
  4. Гиоталамо-гипофизарная система. Роль гипоталамуса в регуляции физиологических функций.
  5. Глава 17. Прогрессирующее ожирение со снижением половых функций организма
  6. Графики и основные свойства элементарных функций
  7. Графики обратных тригонометрических функций

Шаблоны представляют собой обобщающие определения функций, из которых компилятор может автоматически сделать функцию с заданными параметрами. Шаблоны позволяют пользователю оперировать параметризованными типами. Нет необходимости переписывать функцию при изменении типа параметра.

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);

Exchange(c,b);

Шаблоны функций можно специализировать, т. е. для типов данных, которые не подходят к шаблону можно определить специальную функцию с тем же именем.
Пример со строками:

В этом случае при вызове функции компилятор пытается:

1) Найти функцию, параметры которой точно соответствуют параметрам в вызове.

2) Ищет шаблон, из которого можно сгенерировать функцию с указанным параметрами.

3) Рассматривает функцию на предмет преобразования типов.

Структуры и объединения

Структура – это объединенное в единое целое множество компонентов. Компоненты структуры могут быть разных типов и все должны иметь различные имена. Структура- аналог записи в Паскале.

struct <имя типа (тэг)>

{ тип поле 1;

……………

тип поле n;} <объявление переменной-структуры>;

// дляглобальных переменных

Объявить переменную можно потом, вместе с остальными.

Пример:

Struct ShowMan

{ char name[20];

Char age;

int hight; };

ShowMan D = {“Децл”,18,150};

ShowMan *PD;

PD = &D;

Обращение к полю структуры: D.name.

При вводе, перед полями, представляющими собой символьные массивы, & не ставится.

(*PD).name равносильно PD->name.

Пример массива записей:

ShowMan cinema[20];

(cinema + i)->name (обращение к i-му элементу массива).

ShowMan *p = new ShowMan; (выделение памяти и преобразование указателя на тип ShowMan).

ShowMan *p = new ShowMan(“Денис Ричи”,100,100);

………………….

Delete p;

Объединение

Объединение – это тип данных, позволяющий экономить память, т. к. делает возможным хранение разнотипных данных в одной области памяти (в разное время).

Основное свойство объединения состоит в том, что все его элементы размещаются от начала одного и того же участка памяти.

Пример:

#include<stdio.h>

Union Ud

{ char a[10]; // Размер участка памяти, отводимого для объединения,

float b; // определяется размером самого большого из элементов

double z; };

REGS – используется для обращения к переменным, проецируемым на регистры процессора.


Дата добавления: 2015-07-08; просмотров: 388 | Нарушение авторских прав


Читайте в этой же книге: Идентификаторы | Математические функции | Функции форматного ввода и вывода данных |
<== предыдущая страница | следующая страница ==>
Операторы управления| Struct B

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