Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

#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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


02:00.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru