Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
drerek
6 / 6 / 1
Регистрация: 16.10.2012
Сообщений: 147
1

Шаблон для односвязного списка

14.04.2015, 22:15. Просмотров 1072. Ответов 5
Метки нет (Все метки)

Помогите разобраться с шаблонами, выводятся ошибки, ничего не получается..

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//List.h
#include "header.h"
 
template <typename T>
struct Element{
    Element *next;
    T data;
};
 
template <typename T> 
class List{
protected:
    Element<T> *firstElem;
    int count;
private:
    int size;
public:
    List();
        void Add(T value);
    void Show();
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
//List.cpp
#include "List.h"
 
template<typename T>
List<T>::List(){
    size = 10;
    count = 0;
    firstElem = 0;
}
template<typename T>
void List<T>::Add(T data){
    if (count != size){
        Element<T> *needElement = new Element<T>();
        needElement->data = data;
        needElement->next = NULL;
        if (firstElem != NULL){
            Element<T> *lastelem = firstElem;
            while (lastelem->next != NULL){
                lastelem = lastelem->next;
            }
            lastelem->next = needElement;
            count++;
        }
        else
        {
            firstElem = needElement;
            count++;
        }
    }
    else cout << "List is full" << endl;
}
C++
1
2
3
4
5
6
7
8
9
10
//main.cpp
#include "header.h"
#include "List.h"
int main(){
    List <int> a;
    a.Add(5);
    a.Add(15);
    a.Show();
    system("pause");
    return 0;
Пишет что ссылки на неразрешимые внешние символы, какие то непонятные ошибки, помогите разобраться! Заранее спасибо!
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2015, 22:15
Ответы с готовыми решениями:

Шаблон для односвязного списка
Доброго времени суток! Проблема - пишу шаблон для односвязного списка На приведенном фрагменте...

Шаблон для узла односвязного списка
Есть узел typedef struct Var { String varname; int value; struct Var *next; }...

Разработать шаблон класса для реализации односвязного списка
Помогите пожалуйста разработать шаблон класса для реализации односвязного списка.

Спроектировать шаблон класса spisok для реализации односвязного линейного списка. Не работает сортировка
Здравствуйте! Очень нужна помощь в реализации программы. Задание: Спроектировать шаблон класса...

Шаблон односвязного списка
Код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; template &lt;typename T&gt; class...

5
Tulosba
:)
Эксперт С++
4759 / 3253 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
14.04.2015, 22:19 2
drerek, перенеси код шаблонных методов в List.h. List.cpp не нужен вообще в таком случае.
1
drerek
6 / 6 / 1
Регистрация: 16.10.2012
Сообщений: 147
14.04.2015, 22:22  [ТС] 3
Tulosba, это кусок программы, остальное я не выкладывал, что бы не засорять тему.
0
Tulosba
:)
Эксперт С++
4759 / 3253 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
14.04.2015, 22:28 4
Цитата Сообщение от drerek Посмотреть сообщение
, это кусок программы, остальное я не выкладывал, что бы не засорять тему.
Не понял, к чему ты это сказал Если в list.cpp у тебя есть что-то ещё (не шаблонное) то оставь. А всё шаблонное перенеси в заголовочный файл.
1
drerek
6 / 6 / 1
Регистрация: 16.10.2012
Сообщений: 147
14.04.2015, 22:34  [ТС] 5
Tulosba, я конечно немного не понял, а почему не работает с файлом *.cpp?
0
Tulosba
:)
Эксперт С++
4759 / 3253 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
14.04.2015, 22:51 6
Лучший ответ Сообщение было отмечено drerek как решение

Решение

drerek, Чтобы инстанцировать шаблон нужно иметь шаблонный код в этой же единице трансляции. При компиляции main.cpp конструктора для List<int> (который должен быть построен из List<T>) не видно.
1
14.04.2015, 22:51
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2015, 22:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Напишите шаблон класса односвязного списка, который принимает элементы любого типа
Ребята, помогите. Надо решить следующую задачу: Напишите шаблон класса односвязного списка,...

Деструктор для элемента односвязного списка
Правильно ли написан деструктор для элемента односвязного списка? #include &lt;iostream&gt;...

Не работает сортировка для односвязного списка
Код следующий: #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;algorithm&gt;...


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

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

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