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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
xbifx
0 / 0 / 0
Регистрация: 14.01.2012
Сообщений: 37
#1

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

16.01.2012, 00:05. Просмотров 1056. Ответов 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();
};
 Комментарий модератора 
Слова "помогите","плз", "горю","отчислят","срочно" в названии темы только отбивают желание ее смотреть. Кратко опишите суть проблемы,а не причины ее возникновения.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2012, 00:05     Ошибка при компиляции
Посмотрите здесь:

Ошибка при компиляции - C++
День добрый. При написаниии любого кода у меня всегда возникает ошибка:1 unresolved externals, как исправить?

Ошибка при компиляции - C++
Доброго времени суток. подскажите пожалуйста почему выходит ошибка? while (!DataModule5-&gt;GroupDestin-&gt;Eof) { ...

Ошибка при компиляции - C++
Посмотрите пожалуйста в чем ошибка тут и что нужно исправить ? #include &lt;iostream&gt; int fac(int n) { int fac; int...

Ошибка при компиляции - C++
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include &quot;Unit1.h&quot; ...

Ошибка при компиляции - C++
При компиляции программы выбивает ошибку на этой строке ( v - vector &lt;std::string&gt; v) : sort(begin(v), end(v)); Пишет: error...

Ошибка при компиляции - C++
Здравствуйте, при компиляции данного когда появляется данная ошибка. Задача - перевести полученное число в двоичную систему, провести...

Ошибка при компиляции - C++
Здравствуйте! При попытке компиляции кода выкидывает ошибку &quot;fatal error LNK1120: 1 неразрешенных внешних элементов&quot; #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xbifx
0 / 0 / 0
Регистрация: 14.01.2012
Сообщений: 37
16.01.2012, 10:56  [ТС]     Ошибка при компиляции #21
да в последний момент все как всегда, потому в таком виде)

Добавлено через 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
Как сделать ЦИКЛИЧЕСКИЙ двусвязный список?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2012, 12:57     Ошибка при компиляции
Еще ссылки по теме:

Ошибка при компиляции - C++
При компиляции программы борланд выдает ошибку Unresolved external '_main' referenced from C:\PROGRAM...

Ошибка при компиляции - C++
Решил изучать программирование.Нашёл сайт programmersclub.ru , там всё понятно и подробно описано. Написал простенькую программу, но при...

ошибка при компиляции - C++
Добрый день. при компиляции выдает вот такую ошибку: c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot find...

ошибка при компиляции - C++
когда компилирую свою программу на dev c++ выводит вот эту ошибку в отдельном окне // Pick up any OS-specific definitions. #include...

Ошибка при компиляции - C++
Всем здрасте , я тут новенький , при компиляции выходит ошибка , вот отрывочек : 1&gt; Для всех выходных данных обновления не требуется. ...


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

Или воспользуйтесь поиском по форуму:
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
16.01.2012, 12:57     Ошибка при компиляции #22
а в чем именно проблема?
просто в таком списке первый и последний элемент указывают друг на друга. схематически список таков, что выполняется:
last->next = first;
first->prev = last;

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

Добавлено через 13 минут
и еще, ф-ии, подобные print и print_back, лучше реализовывать вне класса, т.к. им не нужен доступ к закрытому представлению. лучше дополнить интерфейс так, чтобы он предоставлял доступ к данным
Yandex
Объявления
16.01.2012, 12:57     Ошибка при компиляции
Ответ Создать тему
Опции темы

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