Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите разобраться с использованием шаблонов в С++

10K
07 декабря 2008 года
Schuler
42 / / 04.04.2007
Пытаюсь вникнуть в использование шаблонов но, что-то не так.
В частности вот не рабочий код
Код:
#include<iostream>
using namespace std;
template<class T>
class aa
{
public:
    double IZ;
    aa(T A);
};
template<class T>
aa<T>::aa(T A)
{
    IZ=A;
}
void main()
{
    int a(10),b(20);
    aa to(a);
    cout<<to.IZ<<endl;
}



И ещё если несколько раз использовать дин и тот же шаблон, то можно ли не объявлять его много раз?
307
08 декабря 2008 года
Artem_3A
863 / / 11.04.2008
Смысл твоего кода? Ты пытаешь присвоить переменной доубле переменную типа Т, а если тип Т например строка или класс динамического массива, или оконный класс из мфс? Внимательно почитай в ЛЮБОЙ книге по с++ про шаблоны.

В смысле несколько раз объявлять? Ты пишешь этот код, а потом просто создаешь экземпляры шаблона с параметром - Тип!
10K
08 декабря 2008 года
Schuler
42 / / 04.04.2007
Я просто пытаюсь на примере этого кода разобраться с использованием шаблонов, но не получается,…
307
08 декабря 2008 года
Artem_3A
863 / / 11.04.2008
Цитата: Schuler
Я просто пытаюсь на примере этого кода разобраться с использованием шаблонов, но не получается,…



Шаблоны нужны дабы программист не писал один и тот же код(функцию, контейнер) для различных типов данных несколько раз.
Например, класс списка. Если не использовать шаблоны, то программисту пришлось бы переписывать его для каждого типа данных, ну или использовать не типизированный указатель войд(так к слову)!

Например

Код:
template<class T>
class CList
{
public:
     .........................
private:
    struct Node
    {
     T& TDate;
     Node* pstNext;
     .........................  
    };
    Node* pstHead;
    ..........................
}


Нам совершенно все равно какой тип данных пользователь будет хранить в нашем контейнере.

 
Код:
CList<int> intList;
    CList<string> strList;
    CList<myclass> classList;


Достаточно просто создать список и все будет замечательно работать.
Надеюсь я не много разъяснил тебе на счет шаблоном.
10K
09 декабря 2008 года
Schuler
42 / / 04.04.2007
Спасибо
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог