Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

12пми / Template / ClassMassivTemp

.cpp
Скачиваний:
18
Добавлен:
02.06.2015
Размер:
1.79 Кб
Скачать
#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