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

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

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

Примитивный шаблонный класс С++ - C++

06.01.2011, 01:29. Просмотров 953. Ответов 11
Метки нет (Все метки)

Создайте пожалуйста любой шаблонный класс на начальном (или "примитивном") уровне языка.
Для понимания сделайте с розьяснением пожалуйста.
Буду очен благодарен.

Добавлено через 2 минуты
Если можно,то с вектором чтото подобное замудрите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2011, 01:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Примитивный шаблонный класс С++ (C++):

Класс Matrix: реализовать шаблонный класс для двумерных массивов - C++
Доброго времени суток. У меня вопрос: я создал класс Array со внутренним динамическим массивом и объекты этого типа смог создать и я ими...

Шаблонный класс и класс одномерный массив - C++
Задание: протестировать класс шаблон, с обычными типами данных я понял как делать, а как передать в шаблон свой класс я не понял. ...

Переделать класс в шаблонный класс - C++
Как данный процесс проделать? Я попробовал так по синтаксису из учебника: #include <iostream> #include <fstream> using...

Шаблонный класс - C++
#include <iostream> using namespace std; template <class T> class Vector{ private: int size, capacity; T* data; public: ...

Шаблонный класс - C++
Как его реализовать??? Смысл я понимаю, но вот как записать...не знаю:cry:

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

11
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
06.01.2011, 01:52 #2
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
#include <iostream>
 
template<class T>
class Vector
{
public:
   Vector():Arr(0), sz(0) 
   {
   }
   Vector(int sz_, T elem=T()):sz(sz_)
   {
       Arr=new T[sz];
       for(int i=0; i<sz; ++i)
       {
           Arr[i]=elem;
       }
   }
   ~Vector()
   {
       delete[] Arr;
   }
   T& operator [](int idx) {return Arr[idx];}
   const T& operator [](int idx) const {return Arr[idx];}
   const int size()  const {return sz;}
private:
   T* Arr;
   int sz;
};
 
int main()
{
    const int n=10;
    Vector<int> Vec(n);
    for(int i=0; i<Vec.size(); ++i)
        Vec[i]=i+1;
    for(int i=0; i<Vec.size(); ++i)
        std::cout<<Vec[i]<<' ';
    std::cout<<'\n';
    return 0;
}
1
EDOMAN
0 / 0 / 0
Регистрация: 04.01.2011
Сообщений: 5
06.01.2011, 02:27  [ТС] #3
Ага спс нече так, а еще проще возможно?
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
06.01.2011, 05:23 #4
EDOMAN, куда ж еще то проще?) тут нет ничего почти
0
easybudda
06.01.2011, 05:30
  #5

Не по теме:

Цитата Сообщение от EDOMAN Посмотреть сообщение
Если можно,то с вектором чтото подобное замудрите.
Хозяйка, дай попить, а то так есть хочется, что спать негде.

2
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
06.01.2011, 06:11 #6
Вот пример "примитивного шаблонного класса":
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
#include <iostream>
 
#define TEST(EXP) \
    std::cout << #EXP " = " << (EXP) << std::endl;
 
template<typename T>
class foo
{
public:
    foo(const T& rhs);
    
    template<typename N>
    friend std::ostream& operator << (std::ostream& os, const foo<N>& rhs);
    
private:
    const T t;
};
 
template<typename T>
foo<T>::foo(const T& rhs)
    : t(rhs) {}
    
template<typename T>
std::ostream& operator << (std::ostream& os, const foo<T>& rhs)
{
    return (os << rhs.t);
}
 
 
int main()
{
    foo<int> i(5);
    foo<char> c('c');
    foo<float> f(.5);
    TEST(i);
    TEST(c);
    TEST(f);
    return 0;
}
1
EDOMAN
0 / 0 / 0
Регистрация: 04.01.2011
Сообщений: 5
06.01.2011, 10:13  [ТС] #7
Да,большое спасибо.
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
06.01.2011, 12:05 #8
Nameless One, разве перегрузка операторов - это примитивно? Не сложно - да, но примитивно-ли?
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
07.01.2011, 06:19 #9
silent_1991, перегрузка операторов - это по сути перегрузка обычных функций.
1
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
07.01.2011, 06:24 #10
Nameless One, да, но всё равно прототип функции зачастую составляется по каким-то правилам (по сути мы можем зафигачить любой прототип, но чтобы всё работало как надо, нужно делать так, как пишут в книжках )
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
07.01.2011, 09:33 #11
Ну тогда чтобы было совсем примитивно
Вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
template<typename T>
class bar
{
public:
    bar()
    {
        std::cout << "I'm a template class, lol ;)" << std::endl;
    }
};
 
int main()
{
    bar<const char****&> b;
    return 0;
}
1
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
07.01.2011, 20:11 #12
Nameless One, во, вот это примитивно)))
0
07.01.2011, 20:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2011, 20:11
Привет! Вот еще темы с ответами:

Шаблонный класс - C++
Ребят, прошу Вашей помощи.. Программу я написала.. Она работает. Но теперь мне нужно переделать ее , используя шаблонный класс. Я...

Шаблонный класс - C++
День добрый. Пишу матричный калькулятор на шаблонном классе. Хочу добиться того, чтобы можно было оперировать с матрицами всех численных...

Шаблонный класс - C++
Подскажите как указать реализацию методов для шаблонного класса template &lt;class T_machine&gt; class hospital_room { ...

Шаблонный класс - C++
Я запутался с шаблонами. Не пойму никак как вызвать конструктор с введенным в функции check_int() значением и как дальше вызвать функции...


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

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

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