Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include "stdafx.h"
#include <iostream>
using namespace std;
template <class T> //Шаблон с класса с параметром T
class Massiv //Наш класс
{
private:
static const int maxSize = 256;
T Array[maxSize]; //Пусть тип объявленного массива будет соответствовать типу параметра из Шаблона
int size; //Счетчик элементов
public:
Massiv ()
{
size = 0;
}
int getSize()
{
return size;
};
bool Add(T x); //Метод с параметром-ссылкой на переменную типа параметра из Шаблона
void Show(); //Метод для отображения массива на экране
void Clear()
{
size = 0;
};
};
template<class T> bool Massiv<T>::Add(T x) //Прописываем метод вне класса с использованием шаблона класса
{
if (size == maxSize)
{
return false;
}
Array[size]=x;//Присваиваем в текущий элемент параметр принимаемый методом. Тип этого параметра соответствует типу, принимаемому шаблоном
size++; //Переходим к позиции следующего элемента
return true;
}
template <class T> void Massiv<T>::Show() //Прописываем метод вне класса с использованием шаблона класса
{
for (int i=0; i<size; i++)
{
cout<<Array[i]<<"\t"; //С помощью цикла выводим все данные массива на экран
}
cout<<endl;
}
void main()
{
setlocale( LC_ALL,"Russian" );
Massiv<int> Arr; //Объявляем переменную типа нашего класса и указываем необходимый для обработки тип в угловых скобках
Arr.Add(100); //Добавляем элементы
Arr.Add(200);
Arr.Add(300);
Arr.Show(); //Отображаем массив на экране
Massiv<char *> Arr2; //Объявляем другую переменную типа нашего класса и указываем необходимый для обработки тип в угловых скобках
Arr2.Add("Строка"); //Добавляем данные
Arr2.Add("Начинаю понимать");
Arr2.Add("УРА");
Arr2.Show(); //Отображаем массив на экране
}
Соседние файлы в папке Template