С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 08.05.2017
Сообщений: 5
1

Ошибка при компиляции духсвязного списка

08.05.2017, 19:05. Показов 580. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
ранее объявлял указатели как функции, а при объявлении их методами класса
компилятор выводит ошибку- C:\Users\user\Desktop\êóðñîâàÿ\ñ++\main.cpp:17 no 'void DoubleList::AddList(int, int)' member function declared in class 'DoubleList'



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
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <string.h>
 
using namespace std;
 
 
class DoubleList  {
private:
int data; 
DoubleList *next; //óêàçàòåëü íà ñëåäóþùèé ýëåìåíò
DoubleList *prev; //óêàçàòåëü íà ïðåäûäóùèé ýëåìåíò
};
DoubleList *head; //óêàçàòåëü íà ïåðâûé ýëåìåíò ñïèñêà
 
void DoubleList::AddList(int value, int position) {
           DoubleList *node=new DoubleList; //ñîçäàíèå íîâîãî ýëåìåíòà
           node->data=value; //ïðèñâîåíèå ýëåìåíòó çíà÷åíèÿ
           if (head==NULL) //åñëè ñïèñîê ïóñò
            {
           node->next=node; //óñòàíîâêà óêàçàòåëÿ next
            node->prev=node; //óñòàíîâêà óêàçàòåëÿ prev
                head=node; //îïðåäåëÿåòñÿ ãîëîâà ñïèñêà
           }
            else
                    {
               DoubleList *p=head;
               for(int i=position; i>1; i--) p=p->next;
             p->prev->next=node;
            node->prev=p->prev;
                node->next=p; //äîáàâëåíèå ýëåìåíòà
          p->prev=node;
           }
           cout<<"\nÝëåìåíò äîáàâëåí.\n\n";
}
int DoubleList::DeleteList(int position) {
            if (head==NULL) { cout<<"\nÎøèáêà! Ñïèñîê ïóñò.\n\n"; 
          return 0; 
           }
        if (head==head->next) 
            {
          delete head; //óäàëåíèå ýëåìåíòà
           head=NULL;
           }
         else
           {
          DoubleList *a=head;
          for (int i=position; i>1; i--) a=a->next;
           if (a==head) head=a->next;
         a->prev->next=a->next; //óäàëåíèå ýëåìåíòà
         a->next->prev=a->prev;
          delete a;
          }
      cout<<"\nÝëåìåíò óäàëåí.\n\n";
      }
void DoubleList::PrintList()  {
    if (head==NULL) cout<<"Îøèáêà! Ñïèñîê ïóñò.\n\n";
      else
 {
      DoubleList *a=head;
            cout<<"\nÝëåìåíòû ñïèñêà: ";
        do
          {
         cout<<a->data<<" ";
           a=a->next;
        } while(a!=head); 
      cout<<"\n\n";
}
}
 
int main(int argc, char *argv[]) {
    setlocale(LC_ALL, "Russian");//ñìåíà ÿçûêà   
 
int value, position, x;
do
{
cout<<"Ââåäèòå öèôðó äëÿ íåîáõîäèìîãî äåéñòâèÿ: "<<endl;   
cout<<"1->Äîáàâèòü ýëåìåíò" <<endl;
cout<<"2->Óäàëèòü ýëåìåíò" <<endl;
cout<<"3->Âûâåñòè ñïèñîê" <<endl;
cout<<"0->Âûéòè"<<endl;
cin>>x;
switch (x)
{
case 1:
cout<<"Çíà÷åíèå: "; 
cin>>value;
cout<<"Ïîçèöèÿ: "; 
cin>>position;
AddList(value, position); break;
case 2:
cout<<"Ïîçèöèÿ: "; 
cin>>position;
DeleteList(position); break;
case 3: PrintList(); break;
}
} while (x!=0);
 
    cout << "Íàæìèòå êëàâèøó Enter äëÿ ïðîäîëæåíèÿ ...";
    cin.get();
    cin.get();
    return EXIT_SUCCESS;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2017, 19:05
Ответы с готовыми решениями:

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

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

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

Ошибка при компиляции: сбой при преобразовании в COFF: файл недопустим или поврежден
Подскажите что за ошибка при компиляции LINK : fatal error LNK1123: сбой при преобразовании в COFF:...

2
Модератор
Эксперт С++
13721 / 10918 / 6478
Регистрация: 18.12.2011
Сообщений: 29,147
08.05.2017, 19:15 2
Эти функции не являются членами класса и их нужно объявить друзьями:
C++
1
2
3
4
5
6
7
8
9
10
11
12
class DoubleList  {
private:
    int data; 
    DoubleList *next; //ГіГЄГ*Г§Г*òåëü Г*Г* ñëåäóþùèé ýëåìåГ*ГІ
    DoubleList *prev; //ГіГЄГ*Г§Г*òåëü Г*Г* ïðåäûäóùèé ýëåìåГ*ГІ
    friend void AddList(int value, int position);
    friend int DeleteList(int position);
    friend void PrintList();
 
};
...
void AddList(int value, int position) {
0
0 / 0 / 0
Регистрация: 08.05.2017
Сообщений: 5
08.05.2017, 19:22  [ТС] 3
да, спасибо. Если кто-то столкнётся этой проблемой, то методы объявляются без "DoubleList::"
0
08.05.2017, 19:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2017, 19:22
Помогаю со студенческими работами здесь

Ошибка при компиляции программы при попытке передать метод объекта в параметры процедуры
Есть вот такой модуль: Unit Corutine; Interface uses DOS; type Myproc = procedure;...

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

Ошибка при компиляции при переходе с vs 2012 на 2015
#pragma once #include &lt;windows.h&gt; #include &lt;windowsx.h&gt; class CBall { public:

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru