Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Имя_объекта (параметры_конструктора);





В нашем случае определить вектор, имеющий восемь вещественных координат типа double, можно следующим образом:

Vector<double> z(8);

Проиллюстрируем сказанное следующей программой:

// формирование классов с помощью шаблона

#include <iostream.h>

#include "vector.h" // Шаблон класса "вектор"

Int main(void)

{

Vector<int> X(5);//Создаем объект класса "целочисленный вектор"

Vector<char> C(5);//Создаем объект класса "символьный вектор"

for (int i = 0; i < 5; i++) // Определяем компоненты векторов

{

X[i] = i;

C[i] = 'A' + i;

}
for (int i = 0; i < 5; i++)

{

cout << X[i] << C[i]; // 0 A 1 B 2 C 3 D 4 E

}

Return 0;

}

В программе шаблон семейства классов с общим именем Vector используется для формирования двух классов с массивами целого и символьного типов. В соответствии с требованием синтаксиса имя параметризованного класса, определенное в шаблоне (в примере Vector), используется в программе только с последующим конкретным фактическим параметром (аргументом), заключенным в угловые скобки. Параметром может быть имя стандартного или определенного пользователем типа. В данном примере использованы стандартные типы int и char. Использовать имя Vector без указания фактического параметра шаблона нельзя - никакое умалчиваемое значение при этом не предусматривается.

В списке параметров шаблона могут присутствовать формальные параметры, не определяющие тип, точнее - это параметры, для которых тип фиксирован:

#include <iostream.h>

template<class T, int size = 64> class Row

{

public:

Row()

{

length = size;

data = new T [size];

}

~Row()

{

delete [] data;

}

T &operator [](int i)

{

return data [i];

}

protected:

T *data;

Int length;

};

Int main(void)

{

Row<float, 8> rf;

Row<int, 8> ri;

for (int i = 0; i < 8; i++)

{

rf[i] = i;

ri[i] = i * i;

}

for (i = 0; i < 8, i++)

{

cout << rf[i] << ri[i]; //0 0 1 1 2 4 3 9 4 16 5 25 6 36 7 49

}

Return 0;

}

В качестве аргумента, заменяющего при обращении к шаблону параметр size, взята константа. В общем случае может быть использовано константное выражение, однако выражения, содержащие переменные, использовать в качестве фактических параметров шаблонов нельзя.







Date: 2016-07-25; view: 309; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.009 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию