Читайте также:
|
|
Шаблоны представляют собой обобщающие определения функций, из которых компилятор может автоматически сделать функцию с заданными параметрами. Шаблоны позволяют пользователю оперировать параметризованными типами. Нет необходимости переписывать функцию при изменении типа параметра.
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 |