Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 14.01.2012
Сообщений: 37

Ошибка при компиляции

16.01.2012, 00:05. Показов 2350. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <class Data> List <Data>::~List()
{
    if (pbeg !=0)
    {
        Node *pv = pbeg;
        while (pv)
        {
            pv=pv->next;
            delete pbeg;
            pbeg=pv;
        }
    }
}
это деструктор, ругается на строчку pv=pv->next;
pv=pv->next; это проход по односвязному списку до конца

сама ошибка:
instantiated from `List<Data>::~List() [with Data = Matr]'
instantiated from here
C++
1
List <Matr> L;
default argument for parameter of type `Matr' has type `int'

Сам конструктор:
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
template <class Data> class List
{
    class Node
    {
        public:
            Data d;
            Node *next, *prev;
            Node(Data dat = 0){d = dat; next = 0; prev = 0;}
    };
    Node *pbeg, *pend;
    public:
        List();
        ~List();
        void add(Data d);
        Node * find(Data i) {
                     Node *pv = pbeg;
                     while (pv)
                      {
                         if(pv->d == i)break;
                         pv = pv->next;
                      }
                      return pv;
        }
        Node * insert(Data key, Data d)
        {
            Node *pkey = find(key);
            if(!pkey)
            {
               Node *pv=new Node(d);
                pv->next=pkey->next;
                pv->prev=pkey;
                pkey->next=pv;
                if (pkey!= pend)(pv->next)->prev = pv; else pend=pv;
                 return pv;
              }
             return 0;
        };
        bool remove(Data key);
        void print();
        void print_back();
};
 Комментарий модератора 
Слова "помогите","плз", "горю","отчислят","срочно" в названии темы только отбивают желание ее смотреть. Кратко опишите суть проблемы,а не причины ее возникновения.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.01.2012, 00:05
Ответы с готовыми решениями:

Ошибка при компиляции. Где ошибка? (Работа с классом)
Уважаемые форумчане! При компиляции проекта возникает ошибка &quot; undefined reference to `MeterNZiF::MeterNZiF()' &quot; на 7 строку...

Ошибка памяти при выполнении, при компиляции не выводит ошибки
ПОмогите плс программа вводит строку символов до точки, а после вычисляет процент согласных в этой строке и выводит их в обратном порядке....

Не является внутренней или внешней командой - ошибка не при компиляции а при работе программы
В VS скомпилировал код #include &lt;iostream&gt; using namespace std; int main() { int a; cout&lt;&lt;&quot;Hallo&quot;; cin&gt;&gt;a; ...

21
0 / 0 / 1
Регистрация: 14.01.2012
Сообщений: 37
16.01.2012, 10:56  [ТС]
Студворк — интернет-сервис помощи студентам
да в последний момент все как всегда, потому в таком виде)

Добавлено через 7 часов 38 минут
Еще 1 вопрос, у меня в шаблоне структуры данных используется двусвязный список:


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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#ifndef _Rmatrix
#define _Rmatrix
template <class Data> class List
{
    class Node
    {
        public:
            Data d;
            Node *next, *prev;
            Node(): d(Data()), next(), prev() { }
            Node(const Data& dat): d(dat), next(), prev() { }
 
    };
    Node *pbeg, *pend;
    public:
        List();
        ~List();
        void add(Data d);
        Node * find(Data i) {
                     Node *pv = pbeg;
                     while (pv)
                      {
                         if(pv->d == i)break;
                         pv = pv->next;
                      }
                      return pv;
        }
        Node * insert(Data key, Data d)
        {
            Node *pkey = find(key);
            if(!pkey)
            {
               Node *pv=new Node(d);
                pv->next=pkey->next;
                pv->prev=pkey;
                pkey->next=pv;
                if (pkey!= pend)(pv->next)->prev = pv; else pend=pv;
                 return pv;
              }
             return 0;
        };
        bool remove(Data key);
        void print();
        void print_back();
};
 
using namespace std;
 
//-----------------------------
template <class Data> List <Data>::~List()
{
    if (pbeg !=0)
    {
        Node *pv = pbeg;
        while (pv)
        {
            pv=pv->next;
            delete pbeg;
            pbeg=pv;
        }
    }
}
//------------------------------------
template <class Data> List <Data>::List()
{
    pbeg=0;
    pend=0;
}
//--------------------------------------------------
template <class Data> void List <Data>::print()
{
    Node *pv = pbeg;
    cout<<endl<<"list: ";
    while (pv)
    {
        cout << pv->d << ' ';
        pv = pv->next;
    }
    cout<<endl;
}
//-----------------------------------
template <class Data> void List <Data>::print_back()
{
    Node *pv = pend;
    cout<<endl<<" list back: ";
    while (pv)
    {
        cout<<pv->d<<' ';
        pv=pv->prev;
    }
    cout<<endl;
}
//--------------------------------------
template <class Data> void List <Data>::add(Data d)
{
    Node *pv = new Node(d);
    if (pbeg == 0)pbeg = pend = pv;
    else
    {
        pv->prev = pend;
        pend->next = pv;
        pend = pv;
    }
}
//---------------------------------------
template <class Data> bool List <Data>::remove(Data key)
{
    if(Node *pkey = find(key))
    {
        if (pkey == pbeg)
        {
            pbeg = pbeg->next;
            pbeg->prev = 0;
        }
        else
        if (pkey == pend)
        {
            pend = pend->prev;
            pend->next = 0;
        }
        else
        {
            (pkey->prev)->next = pkey->next;
            (pkey->next)->prev = pkey->prev;
        }
        delete pkey;
        return true;
    }
    return false;
}
//-------------------------------------------------
 
#endif
Как сделать ЦИКЛИЧЕСКИЙ двусвязный список?
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
16.01.2012, 12:57
а в чем именно проблема?
просто в таком списке первый и последний элемент указывают друг на друга. схематически список таков, что выполняется:
last->next = first;
first->prev = last;

кстати, вызовы ф-ий find и insert в приведенном выше классе не скомпилятся

Добавлено через 13 минут
и еще, ф-ии, подобные print и print_back, лучше реализовывать вне класса, т.к. им не нужен доступ к закрытому представлению. лучше дополнить интерфейс так, чтобы он предоставлял доступ к данным
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.01.2012, 12:57

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

При компиляции ошибка. Ошибка c++ C2678
Ошибка c++ C2678 #include &lt;windows.h&gt; #include &lt;string&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; #include...

Ошибка при компиляции
Пишу первую игру на c++ в vs 2013. Появилась такая проблема. Есть 4 файла: main.cpp #include &lt;SFML\Graphics.hpp&gt; ...

Ошибка при компиляции
Доброго времени суток, уважаемые пользователи cyberforum.ru! Подскажите пожалуйста как, зафиксить ошибку? if...

Ошибка при компиляции.
Всем привет! Начал изучать C++ по книжке, но частенько натыкаюсь в ней на ошибки. Пишу в Visual Studio 2008. Программка не...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru