Имя_функции( список_аргументов_функции)
{
//тело функции.
}
объявление объекта шаблонногокласса:
имя_класса_шаблона < список_аргументов_шаблона> имя_объекта;
Пример использования шаблонов будем рассматривать на создании очереди.
Связные списки и другие структуры.
Для работы с массивом необходимо знать его размерность, хотя бы в начале работы программы. Если это данное не известно то можно либо сильно увеличить резервируемую память, либо рисковать ограниченность пространства для данных в массиве. Данную проблему решают связные списки. Связанный список это структура данных, содержащая из взаимосвязанных блоков. Идея состоит в том, что бы создать класс, который поддерживал бы данные определённого типа, среди которых был бы указатель, связанный с другим объектом этого класса.
Существуют три основных вида списков:
§ Однонаправленные списки (очередь, стек);
§ Двунаправленные списки (дек и т.д.);
§ Деревья.
Названия образуются от количества связующих список указателей в каждом объекте списка.
Список состоит из узлов, узлы представляют собой абстрактные классы. Начало — это начало обработки промежуточных узлов списка, которые отвечают за хранение данных, указатель узла - “хвост” обязательно имеет значение null (0).
// программа работы с динамическими списками при помощи классов.
// однонаправленные списки, двунаправленные списки и деревья.
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
ofstream fout("rez.txt");
ifstream fin("rez.txt");
Class Data
{
public:
Data ();
~Data(){delete fam;}
int Compare(const Data &);
Void Show();
private:
char fam[25];
Float ball;
};
Data::Data()
{
cout<<"\n Введите фамилию и средний балл :";
cin>>fam>>ball;
}
void Data::Show()
{ cout.width(25);
cout.fill(' ');
cout<<fam;
Cout.width(10);
cout.fill('-');
Cout.precision(3);
cout<<ball<<"\n";
Fout.width(25);
fout.fill(' ');
fout<<fam;
Fout.width(10);
fout.fill('-');
Fout.precision(3);
fout<<ball<<"\n";
//fout<<fam<<"--"<<ball<<endl;
}
int Data::Compare(const Data &theO)
{
if(strcmp(fam,theO.fam)<0)return -1;
if(strcmp(fam,theO.fam)==0)return 0;
if(strcmp(fam,theO.fam)>0)return 1;
}
Class Node;
Class HeadNode;
Class TailNode;
Дата добавления: 2015-12-26; просмотров: 624;