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

Маленький косяк с шаблоном класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевернуть массив http://www.cyberforum.ru/cpp-beginners/thread1057012.html
В завершении это программы нужно «перевернуть массив» - поменять первый элемент с последним, второй с предпоследним и т.д, но никак не получается #include <cstdlib> #include <iostream> #include <math.h> #include <stdio.h> #include <string.h> #include <algorithm> using namespace std;
C++ Не получается сделать задачу на сортировку массива даже не понимаю с чего приступиться тут 1. В деканате составлена ведомость , в которой указаны фамилия студентов, название предметов и количество прогулов по каждому предмету. Вывести на экран фамилии студентов в порядке увеличения их суммарного числа прогулов по всем предметам. (в этой задаче преподаватель разрешил заменить фамилии студентов и названия предметов цифрами). http://www.cyberforum.ru/cpp-beginners/thread1056993.html
получить матрицу Б в которой отсутствуют все столбцы и строки, содержащие нули C++
Добрый день. Помогите пожалуйста с задачей по с++. Нужно из матрицы А (любой величины) получить матрицу Б в которой отсутствуют все столбцы и строки, содержащие нули.
Матрица. Поменять местами ее i-ую и j-ую строки, умножая ее слева на матрицу перестановок Р C++
Помогите, пожалуйста! Дана целочисленная квадратная матрица А порядка n*n. Поменять местами ее i-ую и j-ую строки, умножая ее слева на матрицу перестановок Р порядка n*n. Матрица перестановок представляет собой матрицу, в которой в каждой строке имеется ровно одна единица, а остальные все равны нулю. При этом в каждой i-ой строке единица стоит на k-ом месте, а в k-ой строке на i-ом месте. Кроме...
C++ Сформировать каркас кода программы http://www.cyberforum.ru/cpp-beginners/thread1056980.html
Помогите, не пойму что делать как класс что как методы и как реализовать футбольные команды. Вот условие: Чемпионат мира по футболу. В чемпионате участвуют 24 сборные, разбитые на 6 групп. Игры проходят в два круга (дома и в гостях). Места в группах в случае равенства очков у двух и более команд определяются следующим образом: а) по лучшей разнице забитых и пропущенных мячей во всех играх;...
C++ Создайте программу, которая будет генерировать и отображать пяти- и шестизначные числа на экран Помогите создать программу которая будет генерировать пяти и шестизначные числа на экран. Пример: Нажимаю "Генерировать" и выдает: 1) 55662 2) 344212 Чтобы выдавало два числа пяти или шестизначные, но выдавало оба. Заранее благодарю подробнее

Показать сообщение отдельно
Greuel
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 21
26.12.2013, 01:23     Маленький косяк с шаблоном класса
Задание:

Разработать шаблонный класс для работы с очередью. Должны быть реализованы операции включения и выборки значений из очереди. Очередь реализовать в виде двусвязного списка.

Проблема:

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

1>------ Построение начато: проект: двусвязный список с шаблоном, Конфигурация: Debug Win32 ------
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall list<int>::list<int>(void)" (??0?$list@H@@QAE@XZ) в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall list<int>::~list<int>(void)" (??1?$list@H@@QAE@XZ) в функции _main
1>C:\Users\Илья\Documents\Visual Studio 2012\Projects\двусвязный список с шаблоном\Debug\двусвязный список с шаблоном.exe : fatal error LNK1120: неразрешенных внешних элементов: 2
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Код:

Файл node.h

C++
1
2
3
4
5
6
7
template <class type>
struct node
 {
     type date;//данные
     node<type> *next,//следующий элемент
         *previous;//предыдущий элемент
 };
Файл list.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once
#include <iostream>
#include "node.h"
 
using namespace std;
 
template <class type>
class list
{
//private:
public:
    node<type> *head,//голова списка
        *tail;//хвост списка
public:
    list();
    list(type x);
    ~list(void);
 
    void add (type x);//добавление
    void out ();//удаление
};
Файл list.cpp

#include "list.h"

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
template <class type>
list<type>::list(void):head(NULL),tail(NULL)
{
}
 
template <class type>
list<type>::list(type x)
{
    head = new node<type>;
    head->date=x;
    head->next=NULL;
    head->previous=NULL;
    tail=head;
}
 
template <class type>
list<type>::~list(void)
{
    while (head!=NULL)
     {
         tail=head->next;
         delete head;
         head=tail;
     }
}
 
template <class type>
void list<type>::add (type x)
{
    node *temp = new node<type>;
    temp->next=NULL;
    temp->date=x;
 
   if (head!=NULL)
   {
       temp->previous=tail;
       tail->next=temp;
       tail=temp;
   }
   else
   {
       temp->previous=NULL;
       head=tail=temp;
   }
 
}
 
template <class type>
void list<type>::out ()
{
     cout<<tail->date<<endl;
     node *temp=tail->previous;
     delete tail;
     tail=temp;
     if(tail!=NULL) tail->next=NULL;
     else head=NULL;
}
Файл main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "list.h"
#include <iostream>
using namespace std;
int main ()
{
    list<int> a;
    //a.add(22);
    //a.out();
    system("pause");
 
    return 0;
}
Добавлено через 1 час 53 минуты
наконец то нашел косяки... только не понимаю почему когда у меня это все в одном файле все работает нормально... но когда разбиваю на заголовочные файлы и прочее... компилятор начинает ругаться...

пишут что нельзя разделять нельзя... но есть же STL с шаблонами... тот же vector и нормально пашет... в чем же мой косяк?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru