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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Deemk0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 18
#1

Создание Шаблонного класса - C++

10.12.2012, 17:00. Просмотров 1321. Ответов 4
Метки нет (Все метки)

Здравствуйте! Столкнулся с проблемой создания шаблона для класса. Не могу понять как ввести более одного символа если объявляю шаблон для типа char?
и еще есть ли возможность объявления разных типов данных для переменных внутри шаблона в мэйне?



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
 #include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
 
 
 
template<class T>
class Student
{
public:
Student(int n);
void print();
T& operator[](int i) {return name[i];}
 
 
 private:
 int size;
T *itsAge;
T *name;
};
 
template<class T>
Student<T>::Student(int n)
{  size=n;
name=new T[n];
itsAge=new T[n];
for(int i=0;i<size;i++)
{
cin>>*(name+i);
cin>>itsAge[i];}
}
 
template<class T>
void Student<T>::print()
{
for(int i=0;i<size;i++){
cout <<"\n name "<< name[i]<<i<<"\n";
cout<<"\n age "<<itsAge[i]<<i<<"\n";
                            }
}
 
 
 
void main()
{ int i;
cout<<"Skoliko par massivov?\n";
cin>>i;
cout<<"Vvodim massivi poelementno ";
Student<char> a(i);
a.print();
getch();
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 17:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание Шаблонного класса (C++):

Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра? - C++
header.h template &lt;class T&gt; class MyVector { public: void swap(MyVector&lt;T&gt;Vector); } template &lt;class T&gt; void...

Возможно ли создание объекта шаблонного класса в функции этого класса? - C++
Доброго времени суток, уважаемые форумчане :) Мне по лабам задали задание - реализовать шаблон контейнера (множество) с операциями...

Создание шаблонного класса(очередь) - C++
Создал приоритетную очередь: #include &lt;iostream&gt; template&lt;typename T&gt; class Element { public: Element(double key,...

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

Чем отличается шаблонный метод класса от шаблонного класса? - C++
Чем отличается шаблонный метод класса от шаблонного класса???????ПЛИЗ!!!!Если можно немного ссылок на летературу

Реализация шаблонного класса - C++
List_Node.h: #ifndef _List_Node_H #define _List_Node_H template &lt;class Type&gt; class ListNode { public: Type...

4
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
10.12.2012, 17:03 #2
Цитата Сообщение от Deemk0 Посмотреть сообщение
Не могу понять как ввести более одного символа если объявляю шаблон для типа char?
Сделайте специализацию шаблона под символьные типы
0
Deemk0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 18
10.12.2012, 17:13  [ТС] #3
Цитата Сообщение от Croessmah Посмотреть сообщение
Сделайте специализацию шаблона под символьные типы
вы про это
C++
1
 Student<char> a(i);
?
0
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
10.12.2012, 17:17 #4
Цитата Сообщение от Deemk0 Посмотреть сообщение
вы про это
Что такое специализация шаблона в С++
1
Deemk0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 18
10.12.2012, 17:31  [ТС] #5
Разобрался, т.е. вот что вышло, вроде все норм:
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
 
 
 
template<class T1,class T2>
class Student
{
public:
Student(int n);
void print();
T1& operator[](int i) {return name[i];}
 
 
 private:
 int size;
T2 *itsAge;
T1 *name;
};
 
template<class T1,class T2>
Student<T1,T2>::Student(int n)
{  size=n;
name=new T1[n];
itsAge=new T2[n];
for(int i=0;i<size;i++)
{
cin>>*(name+i);
cin>>itsAge[i];}
}
 
template<class T1,class T2>
void Student<T1,T2>::print()
{
for(int i=0;i<size;i++){
cout <<"\n name "<< name[i]<<"\n";
cout<<"\n age "<<itsAge[i]<<"\n";
}}
 
 
 
void main()
{ int i;
cout<<"Skoliko par massivov?\n";
cin>>i;
cout<<"Vvodim massivi poelementno ";
Student<char *,int> a(i);
a.print();
getch();
 
}
0
10.12.2012, 17:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2012, 17:31
Привет! Вот еще темы с ответами:

Специализация шаблонного класса - C++
Здравствуйте ! Задача: нужно &quot;вытянуть&quot; тип переменной из списка аргументов конструктора (см. текст). Возможно ли, вообще, такое ?...

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

Обявление шаблонного класса - C++
Как-то с пониманием С++ вроде уже все норм, осталась только одна тема немного темная - шаблоны, вроде бы и понимаю как они работают да и...

Объявление шаблонного класса - C++
Как объявить шаблонный класс?


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

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

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