Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Заблокирован
1

Шаблоны классов

18.02.2015, 14:29. Показов 2316. Ответов 39
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!!!

Подскажите пожалуйста в чем ошибка ?

class PRIMA должен работать с типом int и float

шаблон создал по этой картинке... уверен где-то в классе или прототипом функций косяк.

Заранее спасибо за помощь!!!

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
64
65
66
#include <stdio.h>
#include <conio.h>
 
template <class T>
 
class PRIMA
 
{
    private:
 
    T x,y;
 
    public:
 
    void rara(T k, T c)
 
    {
        x=k;
 
        y=c;
 
 
    }
 
    T mara()
 
    {
        return x>y ? x : y;
    }
 
 
};
 
void rara(int, int) {}
 
void rara(char, char) {}
 
int mara() {}
 
char mara() {}
 
void main()
 
{
    PRIMA k,m;
 
    clrscr();
 
    int x=100,y=500,z;
 
    char a='N',b='S',c;
 
    k.rara(x, y);
 
    m.rara(a,b);
 
    z=k.mara();
 
    c=m.mara();
 
    printf("\n\nz=%d",z);
 
    printf("\n\nc=%c",c);
    
    getch();
}
Миниатюры
Шаблоны классов  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2015, 14:29
Ответы с готовыми решениями:

Шаблоны классов (умножение классов)
Прошу помочь, нужно создать шаблон для умножения значений 2-х классов. Умножить классы просто...

Шаблоны классов с++
Изучаю шаблоны классов, нашел пример реализации стека с этими самыми шаблонами, но вот проблема,...

Шаблоны классов
Помогите пожалуйста написать шаблон класса двумерный числовой массив(матрица) Методы: конструктор...

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

39
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
18.02.2015, 14:39 2
Лучший ответ Сообщение было отмечено RAFA91 как решение

Решение

Цитата Сообщение от RAFA91 Посмотреть сообщение
void rara(int, int) {} void rara(char, char) {} int mara() {} char mara() {}
а для чего это?o_0
1
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
18.02.2015, 14:41 3
Лучший ответ Сообщение было отмечено RAFA91 как решение

Решение

Конструктор добавь. А объявление должно быть такое:
C++
1
2
PRIMA<int> k;
PRIMA<char> m;
1
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
18.02.2015, 14:41 4
Лучший ответ Сообщение было отмечено RAFA91 как решение

Решение

Цитата Сообщение от RAFA91 Посмотреть сообщение
PRIMA k,m;
PRIMA<type> k,m;
1
Заблокирован
18.02.2015, 14:44  [ТС] 5
Цитата Сообщение от dzrkot Посмотреть сообщение
а для чего это?o_0
ну как я понял классу надо как-то сообщить с какими типами ему предстоит работать.
0
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
18.02.2015, 14:46 6
Лучший ответ Сообщение было отмечено RAFA91 как решение

Решение

Цитата Сообщение от RAFA91 Посмотреть сообщение
ну как я понял классу надо как-то сообщить с какими типами ему предстоит работать.
ну вы правильно поняли, но экземпляр класса создаётся на основе конструктора, к примеру
PRIMA<int> k;
будет создан экземпляр класса, где в вашем шаблоне все Т заменятся на int, и функции будут принимать int
1
Заблокирован
18.02.2015, 14:54  [ТС] 7
Цитата Сообщение от dzrkot Посмотреть сообщение
ну вы правильно поняли, но экземпляр класса создаётся на основе конструктора, к примеру
PRIMA<int> k;
будет создан экземпляр класса, где в вашем шаблоне все Т заменятся на int, и функции будут принимать int
спасибо за поиощь. теперь все нормально.

работает только так .

C++
1
2
3
       PRIMA<int> k;
 
       PRIMA<char> m;
а так не хочет

C++
1
   PRIMA<int, char> k, m;
0
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
18.02.2015, 14:57 8
Цитата Сообщение от RAFA91 Посмотреть сообщение
а так не хочет
Так и не должно работать.
1
Заблокирован
18.02.2015, 15:11  [ТС] 9
nmcf благодарю за помощь!

так работает. без конструктора.

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
#include <stdio.h>
#include <conio.h>
 
template <class T>
 
class PRIMA
 
{
    private:
 
    T x,y;
 
    public:
 
    void rara(T k, T c)
 
    {
        x=k;
 
        y=c;
 
 
    }
 
    T mara()
 
    {
        return x>y ? x : y;
    }
 
 
};
 
void main()
 
{
    PRIMA <int> k;
 
    PRIMA <char> m;
 
    clrscr();
 
    int x=100,y=500,z;
 
    char a='N',b='S',c;
 
    k.rara(x, y);
 
    m.rara(a,b);
 
    z=k.mara();
 
    c=m.mara();
 
    printf("\n\nz=%d",z);
 
    printf("\n\nc=%c",c);
    
    getch();
}
0
Заблокирован
18.05.2015, 15:11  [ТС] 10
***********************


Всем доброго дня !!

Подскажите пожалуйста в чем может быть проблема ?

когда блокирую 64 строку - то все нормально (((

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
64
65
66
67
#include <stdio.h>
#include <conio.h>
#include<iostream>
 
using namespace std;
 
template <class T>
 
class Daza
 
{
    T x;
 
    template <class T>  
 
    friend void fgl(Daza <T> &);
 
 
public:
 
    Daza()  {}
 
    ~Daza() {}
 
 
 
    T nas() {return x;}
 
    void basa(T a) {x = a;}
 
    
};
 
 
 
int main()
 
{
 
     Daza <int> A;
 
     Daza <char> B;
 
      A.basa(4545);
 
      B.basa('N');
 
      printf("\n %d %c\n",A.nas(),B.nas());
 
      fgl(A);
 
 
 
      getch();
 
      return 0;
}
 
template <class T>
 
void fgl(Daza <T> &A)
 
{
    //cout<<"\n********* "<<A.x<<"\n";
 
    
}
наверное тут что-то нето

C++
1
2
3
template <class T>  
 
    friend void fgl(Daza <T> &);
0
Заблокирован
17.10.2015, 16:20  [ТС] 11
Добрый день !

Можно ли использовать в качестве параметра Т к примеру
C#
1
<int *>
?
0
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
17.10.2015, 17:25 12
Да, но это не должно конфликтовать с тем, что внутри класса.
0
Заблокирован
18.10.2015, 13:32  [ТС] 13
Цитата Сообщение от nmcf Посмотреть сообщение
но это не должно конфликтовать с тем, что внутри класса.
это как ? типо
C++
1
T * x ;
0
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
18.10.2015, 13:43 14
Нет. Нельзя использовать x внутри так, как не допускается для указателя.
0
Заблокирован
18.10.2015, 13:53  [ТС] 15
ну так приведите свой пример.


мой вариант к примеру работает и для
C++
1
A<int *> c;

C++
1
2
3
template <class T>  
struct A
{T x;};
http://ideone.com/defTl2
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
18.10.2015, 13:59 16
Цитата Сообщение от RAFA91 Посмотреть сообщение
ну так приведите свой пример.
Он имеет в виду например то, что указатели нельзя будет перемножить.
0
Заблокирован
18.10.2015, 14:14  [ТС] 17
Цитата Сообщение от castaway Посмотреть сообщение
Он имеет в виду например то, что указатели нельзя будет перемножить.
ну я надеюсь что это именно так.

а кстати что если так написать

C++
1
2
3
4
5
template <class T>  
struct A
{T *x;}; 
 
A<int *> c;
?

будет ошибка или x станет указателем на указатель ?
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
18.10.2015, 14:22 18
...
Цитата Сообщение от RAFA91 Посмотреть сообщение
станет указателем на указатель
0
Заблокирован
18.10.2015, 14:28  [ТС] 19
???
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
18.10.2015, 14:34 20
Цитата Сообщение от RAFA91 Посмотреть сообщение
???
??????!!!
0
18.10.2015, 14:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2015, 14:34
Помогаю со студенческими работами здесь

Шаблоны классов
Доброго времени суток! Начал разбираться в шаблонах классов , написал вот такой код. Подскажите мне...

Шаблоны классов
Доброго времени суток. Сегодня на форуме зарегался очередной неродивый быдлокодер, которому нужна...

Шаблоны классов
Всем привет. Я только зарегистрировался и не имею опыта в созданиях темы на каких либо форумах....

Шаблоны классов
Добрый день. Начали изучать шаблоны классов, для примера дали программу, но в ней есть. Не могли бы...

Шаблоны классов
Добрый день. Изучаю шаблоны классов в С++ в среде MVC 2006. Проблема в следующем: я создал шаблон...

Шаблоны классов
Почему не правильно считает? #include using namespace std; template &lt;class T&gt; class Boxe {...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru