Class объявление класса
Список параметров класса-шаблона представляет собой идентификатор
типа, подставляемого в объявление данного класса при его генерации. Идентификатору типа предшествует ключевое слово class или typename. Рассмотрим пример шаблона класса работы с динамическим массивом и выполнением контроля за значениями индекса при обращении к его элементам.
#include <iostream>
using namespace std;
#include <string.h>
template <class T> // или иначе template <typename T>
class vector
{ T *ms;
int size;
public:
vector(): {}
~vector(){
void inkrem()
{ … }
void decrem(void
{...}
};
int main()
{ …}
В С++, так же как и для класса, для функции (глобальной, то есть не являющейся компонентой-функцией) может быть описан шаблон. Это позволит снять достаточно жесткие ограничения, накладываемые механизмом формальных и фактических параметров при вызове функции. Рассмотрим это на примере функции, вычисляющей сумму нескольких аргументов.
template <class T1,class T2>
T1 sm(T1 a,T2 b) // описание шаблона
{ return (T1)(a+b); // функции c 2 параметрами }
template <class T1,class T2,class T3>
T1 sm(T1 a,T2 b,T3 c) // описание шаблона функции
{ return (T1)(a+b+c); // функции c 3 параметрами}
void main()
{cout<<"сумм sm(int,int) = "<<sm(4,6)<<endl;
cout<<"суммsm(int,int,int)="<<sm(4,6,1)<<endl;
cout<<"cумм sm(int,double) = "<<sm(5,3)<<endl; cout<<"сумм sm(double,int,short)=" <<
sm(.4,6,(short)1)<<endl; }
Дата добавления: 2015-12-21; просмотров: 15; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!