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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2010, 18:51   #1
Yura_n
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 23
По умолчанию не получается шаблон класса

Всем доброго времени суток. У меня такая проблема:
Написал шаблон класса, но он не работает для типов double и float. Задача заключается в том чтобы написать шаблон класса massiv в котором хранится одномерный массив, есть конструктор, функция сортировки и показа отсортированного массива.
Все работает, но только для целых чисел, а для остальных типов не работает...
Вот код:
Код:
#include <iostream.h>
#include <math.h>
#include <stdlib.h>

template < class Tip >
class Massiv
{
    Tip *A,n;
public:
     Massiv ()
{
    cout<<"Vvedite col-vo elementov"<<endl;
    cin>>n;
    A=new Tip[n];
    cout<<"Vvodite elementi"<<endl;
    for(int i=0; i<n;i++)
        cin>>A[i];
}

void Show()
{
    for(int i=0;i<n;i++)
        cout<<A[i]<<"  ";
        cout<<endl;
}
void Sort()
{
    int i;
    int j;
    Tip tmp;

    for(i = 0; i <= n-1; i++)
    {
        for(j = 0; j <= n-2-i; j++)
        {
            if( A[j]>A[j+1] )
            {
                tmp = A[j];
                A[j] = A[j+1];
                A[j+1] = tmp;
            }
        }
    }
        for(i=0;i<n;i++)
        cout<<A[i]<<"  ";
        cout<<endl;
}
};

void main()
{
    cout<<"Celie: "<<endl;
Massiv< int > I;
cout<<endl;
cout<<"Vechcestvennie: "<<endl;
Massiv< float > D;
cout<<endl;
cout<<"Dlia int: "<<endl;
I.Sort();
cout<<"Dlia double"<<endl;
D.Sort();

}
Yura_n вне форума Ответить с цитированием
Старый 26.01.2010, 18:58   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Первое, что нашёл:

Tip *A,n;

Должно быть:

Tip *A;
int n;

ЗЫ Оно же и последнее.

Последний раз редактировалось Carbon; 26.01.2010 в 19:00.
Carbon вне форума Ответить с цитированием
Старый 26.01.2010, 19:03   #3
Yura_n
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 23
По умолчанию

уже исправил на
Tip *A;
int n
но все равно та же проблема. Когда ввожу целые числа - все хорошо а когда double , то как только встречается дробное число - сразу прекращается работа программы....
Yura_n вне форума Ответить с цитированием
Старый 26.01.2010, 19:11   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

а можно пример теста?
Carbon вне форума Ответить с цитированием
Старый 26.01.2010, 19:25   #5
Yura_n
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 23
По умолчанию

Значит программа должна работать следующим образом:
ввожу количество целых элементов (допустим 5),
затем ввожу пять элементов массива по одному,
затем ввожу количество вещественных элементов (допустим 5 ),
затем по одному ввожу эти элементы.
Целые числа вводятся нормально, а вещественные: пока ввожу целые числа -все хорошо, а как только вожу дробное число ( допустим 3,2), то на этом числе ввод элементов заканчивается а остальным присваивается первое число из диапазона..
Yura_n вне форума Ответить с цитированием
Старый 26.01.2010, 19:33   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Yura_n Посмотреть сообщение
а как только вожу дробное число ( допустим 3,2), то на этом числе ввод элементов заканчивается а остальным присваивается первое число из диапазона..
Дробные числа через точку надо вводить
Код:
3.2
netrino вне форума Ответить с цитированием
Старый 26.01.2010, 19:39   #7
Yura_n
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 23
По умолчанию

да да да!
Прошу прощения за такую глупую тему)))

Я и не заметил что ввожу через запятую....
Yura_n вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? TwiX Общие вопросы Delphi 3 15.11.2009 00:54
Создать шаблон класса «очередь» (C++) NieL Помощь студентам 0 09.06.2009 13:31
Как написать шаблон класса Suren Общие вопросы C/C++ 4 25.05.2009 23:41
Шаблон класса androidvsu Общие вопросы C/C++ 2 26.04.2009 11:57
Как запустить на выполнение шаблон класса FTemplate? unwanted Общие вопросы Delphi 3 14.08.2007 11:44