Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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; } { 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; Нарушение авторских прав |