Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2010, 23:46   #1
MAO25
Новичок
Джуниор
 
Регистрация: 21.05.2010
Сообщений: 1
По умолчанию Шаблонный класс С++

Здравствуйте, Помогите пожалуйста написать программу.
Вот задание: Класс «Массив». Методы: объединение двух массивов, перестроение порядка следования элементов на противоположный, вывод элементов массива на дисплей.

Вот наработки, только ничего не работает(((

#include "stdafx.h"
#include <iostream>

using namespace std;
template <class T> class Array
{
public:
Array(int nSize);
~Array();
void Merge(int nSize);
void revers(int nSize);
void output();
private:
T *p;


int Size;
};

template <class T> Array<T>::~Array()
{
delete [] p;
};

template <class T> Array<T>::Array(int nSize)
{
Size = 2*nSize;
p = new T[Size];

};



template <class T> void Array<T>:utput()
{
for (int i=0; i<Size; i++){
cout<<p[i]<<' ';}
cout<<endl;

};

template<class T> void Array<T>::Merge(int nSize)
{ //Выполнить слияние массива A, содержащего nA элементов,
// и массива B, содержащего nB элементов.
// Результат записать в массив C.
T *A=new T[Size];
T *B=new T[Size];

int i(0), j(0); //Номера текущих элементов в массивах A и B

while( i+j < Size*2 ) //Пока остались элементы в массивах
{
if( (j>=Size) || ( (i<Size) && (A[i]<=B[j]) ) )
{ //Копирую элемент из массива A
p[i+j] = A[i];
++i;
} else { //Копирую элемент из массива B
p[i+j] = B[j];
++j;

}
}
}

template <class T> void Matrix<T>::revers(T nSize)
{

for(int i = 0; i < Size; i++)
{
buf=p[i];
p[i]=p[Size-i];
p[Size-i]=buf;

}

cout<<endl;
};

int main()
{
// Параметризация шаблона целым типом данных
Array<int> iArray(3);
iArray.Merge (3);
iArray.output();
iArray.revers(4);
iArray.output();



// Параметризация шаблона вещественным типом данных
Array<float> fArray(3);
fArray.Merge (3.1);
fArray.output();
fArray.revers(2.11);
fArray.output();
system("PAUSE");
return 0;
}
MAO25 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс Chartvit Visual C++ 2 05.01.2011 22:20
Шаблонный класс Ozerich Общие вопросы C/C++ 8 06.05.2010 02:18
Шаблонный класс Syltan Общие вопросы C/C++ 2 22.11.2009 22:23
Шаблонный односвязный список _ares_ Общие вопросы C/C++ 4 06.12.2008 21:35