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

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

Восстановить пароль Регистрация
 
EDOMAN
0 / 0 / 0
Регистрация: 04.01.2011
Сообщений: 5
06.01.2011, 01:29     Примитивный шаблонный класс С++ #1
Создайте пожалуйста любой шаблонный класс на начальном (или "примитивном") уровне языка.
Для понимания сделайте с розьяснением пожалуйста.
Буду очен благодарен.

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

C++ Шаблонный класс
Переделать класс в шаблонный класс C++
C++ Шаблонный класс
Шаблонный класс C++
C++ Шаблонный класс
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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;
}
EDOMAN
0 / 0 / 0
Регистрация: 04.01.2011
Сообщений: 5
06.01.2011, 02:27  [ТС]     Примитивный шаблонный класс С++ #3
Ага спс нече так, а еще проще возможно?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
06.01.2011, 05:23     Примитивный шаблонный класс С++ #4
EDOMAN, куда ж еще то проще?) тут нет ничего почти
easybudda
06.01.2011, 05:30
  #5

Не по теме:

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

Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
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;
}
EDOMAN
0 / 0 / 0
Регистрация: 04.01.2011
Сообщений: 5
06.01.2011, 10:13  [ТС]     Примитивный шаблонный класс С++ #7
Да,большое спасибо.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.01.2011, 12:05     Примитивный шаблонный класс С++ #8
Nameless One, разве перегрузка операторов - это примитивно? Не сложно - да, но примитивно-ли?
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
07.01.2011, 06:19     Примитивный шаблонный класс С++ #9
silent_1991, перегрузка операторов - это по сути перегрузка обычных функций.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
07.01.2011, 06:24     Примитивный шаблонный класс С++ #10
Nameless One, да, но всё равно прототип функции зачастую составляется по каким-то правилам (по сути мы можем зафигачить любой прототип, но чтобы всё работало как надо, нужно делать так, как пишут в книжках )
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2011, 20:11     Примитивный шаблонный класс С++
Еще ссылки по теме:

Шаблонный класс C++
C++ Шаблонный класс
C++ шаблонный класс

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
07.01.2011, 20:11     Примитивный шаблонный класс С++ #12
Nameless One, во, вот это примитивно)))
Yandex
Объявления
07.01.2011, 20:11     Примитивный шаблонный класс С++
Ответ Создать тему
Опции темы

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