Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Deemk0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 18
10.12.2012, 17:00     Создание Шаблонного класса #1
Здравствуйте! Столкнулся с проблемой создания шаблона для класса. Не могу понять как ввести более одного символа если объявляю шаблон для типа 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();
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 17:00     Создание Шаблонного класса
Посмотрите здесь:

C++ Проблема наследования от шаблонного класса.
C++ Обявление шаблонного класса
C++ наследник шаблонного класса
Объявление шаблонного класса C++
C++ Инстанцирование шаблонного класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
10.12.2012, 17:03     Создание Шаблонного класса #2
Цитата Сообщение от Deemk0 Посмотреть сообщение
Не могу понять как ввести более одного символа если объявляю шаблон для типа char?
Сделайте специализацию шаблона под символьные типы
Deemk0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 18
10.12.2012, 17:13  [ТС]     Создание Шаблонного класса #3
Цитата Сообщение от Croessmah Посмотреть сообщение
Сделайте специализацию шаблона под символьные типы
вы про это
C++
1
 Student<char> a(i);
?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
10.12.2012, 17:17     Создание Шаблонного класса #4
Цитата Сообщение от Deemk0 Посмотреть сообщение
вы про это
Что такое специализация шаблона в С++
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();
 
}
Yandex
Объявления
10.12.2012, 17:31     Создание Шаблонного класса
Ответ Создать тему
Опции темы

Текущее время: 02:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru