Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual C++

Войти
Регистрация
Восстановить пароль
 
YURAN89
1 / 1 / 0
Регистрация: 04.12.2008
Сообщений: 19
#1

не получается шаблон класса - Visual C++

26.01.2010, 19:18. Просмотров 388. Ответов 1
Метки нет (Все метки)

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#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();
 
}
Добавлено через 24 минуты
я исправил
Tip *A,n;
на
Tip *A;
int n;
но все равно та же проблема. Программа не работает с вещественными числами.Как только встречается таковой, сразу выбрасывает на результат....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2010, 19:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не получается шаблон класса (Visual C++):

Шаблон класса - Visual C++
#include &lt;iostream&gt; using namespace std; #include &lt;stdlib.h&gt; #include &lt;iomanip&gt; #include &quot;Rus.h&quot; template &lt;class T&gt; ...

Насколько сложно определить шаблон функции-друга для шаблона класса - Visual C++
У меня есть класс типа : class array { ... friend std::ostream&amp; operator&lt;&lt; ( std::ostream&amp; output, ...

Шаблоны функций, Ошибка: для использования класса шаблон требуется список аргументов шаблон - C++
Есть у меня 3 структуры Трамвай , Троллейбус , Автобус. Для автобуса определены функции (работают) Троллейбус и Трамвай одинаковые поля...

Шаблон класса, параметром которого должны являться наследники определённого класса - C++
Сразу извиняюсь за нубский вопрос. Суть в том, что я хочу сделать шаблон класса, параметром которого должны являтся наследники...

При перегрузке оператора для класса не получается использовать имя переменной такое же, как в описании класса - C++
Описал первый класс,затем - описал второй класс, используя первый,и когда начал перезагружать оператор для второго класса, вылезла...

Не получается получить тип класса из параметризованного класса - Java SE
Добрый день, дело в том, что я не очень знаком с параметризацией типов в java, изучить досконально пока на данный момент к сожалению...

1
Monte-Cristo
2790 / 1376 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
26.01.2010, 20:05 #2
У меня работает прекрасно
Чуть-чуть отформатировал код для удобочитаемости и заменил заголовочные файлы, необходимые в стандарте C++03

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#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();
 
}
Это работает.

p.s: а как ты вещественные числа вводишь?

Через запятую, или через точку?

p.p.s: для класса нужен еще деструктор, для очищения выделенной памяти в конструкторе:

C++
1
2
3
4
~Massiv()
{
    delete[] A;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2010, 20:05
Привет! Вот еще темы с ответами:

Шаблон класса (параметризация класса) - C++
Нужна помощь и советы!!! Англо-русский словарь построен как список. Каждая компонента содержит английское слово, соответствующее...

Не получается шаблон - C++
//================================================================================================= #include &quot;poject.hpp&quot;...

Создать шаблон некоторого класса, возможно, реализованного с применением некоторого серверного класса - C++
Добрый день, Уважаемые профессионалы. Прошу помочь в решении задачи. Честно говоря, я ничего не понимаю. И вот...решил...

Не получается создать шаблон страницы - WordPress
Здравствуйте! Начинаю осваивать Wordpress и столкнулась с проблемой. Нужно создать шаблон для новой страницы. Как я прочитала, в папке с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru