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

определение функции-члена класса шаблона вне описания класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить площадь и нарисовать треугольник http://www.cyberforum.ru/cpp-beginners/thread848688.html
Задана сторона b, угол А, и радиус описывающего круга R. Вычеслить и вывести все остальные елементы треугольника: площадь S и периметр P. Угол(в градусах), сторона и радиус вводяться с клавиатуры. ...
C++ Реализовать алгоритм Прима с бинарной кучей, в которой нужно хранить ребра Здравствуйте уважаемые программисты тут вот такая задачка попалась нужно реализовать алгоритм Прима с бинарной кучей, в которой нужно хранить ребра а ключом, по которому будет извлечение из вершины... http://www.cyberforum.ru/cpp-beginners/thread848682.html
C++ Чтение из .txt построчно (ifstream)
Здравствуйте, возникли некоторые проблемы с ifstream. Не могу сделать чтение из .тхт файла построчно, да и просто не получается. Вот мой код: Присутствуют глобальные переменные string name; ...
C++ Написать программу составления списка в виде списочных ячеек
Написать на Си++ программу составления списка (a ((((b)))) (c ((d)))) в виде списочных ячеек, распечатать сформированный список, получить список (b (d) ((a))), вывести результат. В обоих случаях...
C++ Переделать программу http://www.cyberforum.ru/cpp-beginners/thread848640.html
есть программ, котора я отвечает условию: Используя множества А, В, С, состоящие из чисел, заполненные с клавиатуры, составить программу на C++, которая находит: ( A/B)\bigcap C. Помогите...
C++ подскажите с функцией вообщем, пишу программу для работы с матрицами, написал функцию, в которой задается размер,диапазон рандом. чисел и вообще генерируется матрица. И залип на том, как же правильно вызвать эту функцию,... подробнее

Показать сообщение отдельно
MrAndrey_ka
78 / 78 / 2
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1

определение функции-члена класса шаблона вне описания класса - C++

25.04.2013, 21:21. Просмотров 1222. Ответов 0
Метки (Все метки)

Создаю класс шаблон в котором используется шаблон структура
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
template <class Type>
struct Obj{
Obj *Next;
Type Buf;
};
 
template <class Type>
class List{
private:
    size_t Sz;
    Obj* Beg, End;
    Obj *Get(size_t i);
    Obj *Add(Type val);
    Type Del(size_t val, bool Destroying = false);
    void DestroyEmpty();
    void Clear(bool Destroying);
    
public:
    Type Delete(size_t val);
    Type operator [](size_t val){return val<Sz? Get(val)->Buf: NULL;};
    void operator <<(Type val)  {Add(val);};
    size_t Length(){return Sz;};
 
List(){
    Sz = 0;
    Beg = new Obj; 
    Beg->Next = NULL;
}//--------------------------------------------------------------
 
~List(){
    Clear(true);
    delete Beg;
}//--------------------------------------------------------------
};
с функциями которые описаны и определены внутри описания класса все в норме. А вот как описать функцию Obj* List::Get(size_t i) вне описания класса
C++
1
2
3
4
5
6
7
8
template <class Type>
Obj* List::Get(size_t i){
    Obj *tec = Beg;
    while(i){
        tec = tec->Next;
        i--;}
    return tec;
}//--------------------------------------------------------------
ругается error C2955: Obj: для использования класса шаблон требуется список аргументов шаблон
1> см. объявление "Obj"
1> error C2244: List<Type>::Get: не удается сопоставить определение функции существующему объявлению
1> см. объявление "List<Type>::Get"
1> определение
1> 'Obj *List::Get(size_t)'
1> существующие объявления
1> 'Obj *List<Type>::Get(size_t)'

Добавлено через 6 минут
уже разобрался... вот может кому еще понадобится нужно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template <class Type>
class List{
private:
    size_t Sz;
    Obj<Type>* Beg, End;
    Obj<Type> *Get(size_t i);
    Obj<Type> *Add(Type val);
....}
 
 
 
template <class Type>
Obj<Type>* List<Type>::Get(size_t i){
    Obj<Type> *tec = Beg;
    while(i){
        tec = tec->Next;
        i--;}
    return tec;
}//--------------------------------------------------------------
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru