Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 26

Error: ISO C++ forbids declaration of "Link" with no type

02.12.2012, 03:54. Показов 1810. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
выдает кучу ошибок, три основные:
Code
1
2
3
4
5
6
7
8
sorted_list.h:8: error: ISO C++ forbids declaration of ‘Link’ with no type
sorted_list.h:8: error: expected ‘;’ before ‘*’ token
 
sorted_list.h:34: error: ‘Sorted_List::Link* Sorted_List::Link::next’ is private
sorted_list.cc:48: error: within this context
 
sorted_list.cc: In member function ‘void Sorted_List:: print()’:
sorted_list.cc:111: error: ‘head’ was not declared in this scope

подскажите в чем проблема, не там декларирую?

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
typedef int key_t;
typedef double value_t;
 
class Sorted_List
{
 
public:
Link* prev;
Link* temp;
Link* cur;
Link* temp2;
Link* head
 
Sorted_List();
~Sorted_List();
void insert(key_t key, value_t value);
void insert_after(key_t key,key_t newKey);
void remove(key_t key, value_t value);
void print();
value_t find(key_t key);
int size();
private:
;
Sorted_List(const Sorted_List &);
Sorted_List& operator=(Sorted_List const&)=delete;
class Link
{
key_t key;
value_t value;
Link* next;
};
Link* first;
};
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
#include <iostream>
#include <iomanip>
#include "sorted_list.h"
 
using namespace std;
Sorted_List::Sorted_List()
{
cout<<"Constructor called"<<endl;
 
this->first=NULL;
}
Sorted_List::~Sorted_List()
{
Link *first=head;
    while (first!=NULL)
    {
    Link *next=first->next;
    delete first;
    first=next;
    }
cout<<"Destructor called"<<endl;
}
 
void Sorted_List::remove(key_t key, value_t value)
{
 
    //if empty list
    Link *first = head;
    if ( first == NULL ) 
    return;
 
     // if last node
    if ( first->next== NULL ) {
    delete first;
    head = NULL;
    }
    else { //first element
    Link *first=head;
    free(head);
    head=head->first;
    }
    //between nodes
    Link *first=head;
    while (first->next!=NULL)
    {
       if (first->next->value==key)
    {
         Link *temp=first->next;
         first->next=temp->next;
         free(temp);
         }
     else
     {
     first=first->next;
}
}
}
value_t Sorted_List::find(key_t key)   
{
link *cur=first;
while(cur!=NULL);
{
   if (cur->key==key)
{
return value;
}
else 
{
cur=cur->next;
}
}
return 0;
 
}
void Sorted_List::insert(key_t key)
{
    
        temp = new Link;
    temp->key = key;
        temp->value = value;
    temp->next = head;
    head = temp;
 
 
}
void Sorted_List::insert_after(key_t key,key_t newKey)
{
    Link* temp = head;
    while (temp!=NULL)
        {
            if(temp->key==key)
            {
              Link *temp2;
              temp2 = new Link;
              temp2->key = newKey;
              temp2->value = value;
     
              temp2->next = temp->next;
              temp->next = temp2;
              return;
            }
            temp=temp->next;
             
        }
}
 
 
void Sorted_List::print()
{
 
    Link *first = head;
        
        while(first)
    {
    cout<<first->value<<endl;
        cout<<first->key<<endl;
    first=first->next;
    }
} 
 
int Sorted_List::size()
{
    int count=0;
    Link *first=head;
    while(first!=0);
    count++;
    first=first->next;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <iomanip>
 
#include "sorted_list.h"
 
using namespace std;
 
int main()
{
  Sorted_List l;
 
 
  l.print();
 
 return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2012, 03:54
Ответы с готовыми решениями:

error: ISO C++ forbids declaration of 'Time' with no type
#ifndef _TIMELL_H #define _TIMELL_H #include &lt;iostream&gt; #include &lt;string&gt; #include &quot;Time.h&quot; using namespace std; ...

C:\Projects\test\test.cpp|6|error: ISO C++ forbids declaration of 'operator++' with no type [-fpermissive]|
class TUID { public: char Data; TUID (); operator ++ (); };

ISO C++ forbids declaration of with no type
Здравстуйте! Недавно начал изучать С++. В коде возникла ошибка: Line 23| ISO C++ forbids declaration of 'roman' with no type. Подскажите,...

4
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
02.12.2012, 05:02
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
typedef int key_t;
typedef double value_t;
 
class Sorted_List
{
 
public:
class Link;
Link* prev;
Link* temp;
Link* cur;
Link* temp2;
Link* head;
 
Sorted_List();
~Sorted_List();
void insert(key_t key, value_t value);
void insert_after(key_t key,key_t newKey);
void remove(key_t key, value_t value);
void print();
value_t find(key_t key);
int size();
private:
;
Sorted_List(const Sorted_List &);
Sorted_List& operator=(Sorted_List const&);
class Link
{
key_t key;
value_t value;
Link* next;
};
Link* first;
};
1
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 26
02.12.2012, 05:31  [ТС]
теперь жалуется на указатели в private

Добавлено через 9 минут
или у меня в функциях что-то не так?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,033
Записей в блоге: 1
02.12.2012, 10:33
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
typedef int key_t;
typedef double value_t;
 
class Sorted_List
{ 
public:
class Link{
    public:
    key_t key;
    value_t value;
    Link* next;
    };
    Link* prev;
    Link* temp;
    Link* cur;
    Link* temp2;
    Link* head;
    Link* first;
    Sorted_List();
    ~Sorted_List();
    void insert(key_t key, value_t value);
    void insert_after(key_t key,key_t newKey);
    void remove(key_t key, value_t value);
    void print();
    value_t find(key_t key);
    int size();
private:
    Sorted_List(const Sorted_List &);
    Sorted_List& operator=(Sorted_List const&);
};
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
#include <iostream>
#include <iomanip>
#include "sorted_list.h"
 
using namespace std;
Sorted_List::Sorted_List()
{
cout<<"Constructor called"<<endl;
 this->head=NULL;//ОБНУЛЯТЬ ГОЛОВУ ТОЖЕ НАДО.
this->first=NULL;
}
Sorted_List::~Sorted_List()
{
Link *first=(Link*)this->head;
 
    while (first!=NULL)
    {
    Link *next=first->next;
    delete first;
    first=next;
    }
cout<<"Destructor called"<<endl;
}
 
void Sorted_List::remove(key_t key, value_t value)
{
    //if empty list
    first = this->head;
    if ( first == NULL ) 
    return;
 
     // if last node
    if ( first->next== NULL ) {
    delete first;
    head = NULL;
    }
    else { //first element
    first=head;
     head=head->next;//ИЗМЕНИЛ ТУТ ПОРЯДОК УДАЛЕНИЯ/ПРИСВОЕНИЯ
    free(head);
    
    }
    //between nodes
    first=head;
    while (first->next!=NULL)
    {
       if (first->next->value==key)
    {
         temp=first->next;
         first->next=temp->next;
         free(temp);
         }
     else
     {
     first=first->next;
}
}
}
value_t Sorted_List::find(key_t key)   
{
cur=first;
while(cur!=NULL);
{
   if (cur->key==key)
{
return cur->value;
}
else 
{
cur=cur->next;
}
}
return 0;
 
}
void Sorted_List::insert(key_t key,value_t value)
{
    
        temp = new Link;
    temp->key = key;
        temp->value = value;
    temp->next = head;
    head = temp;
 
 
}
void Sorted_List::insert_after(key_t key,key_t newKey)
{
    Link* temp = head;
    while (temp!=NULL)
        {
            if(temp->key==key)
            {
              Link *temp2;
              temp2 = new Link;
              temp2->key = newKey;
              temp2->value = 0;//= value; ТУТ НЕТ ПЕРЕМЕННОЙ value
     
              temp2->next = temp->next;
              temp->next = temp2;
              return;
            }
            temp=temp->next;
             
        }
}
 
 
void Sorted_List::print()
{
 
    first = head;
        
        while(first)
    {
    cout<<first->value<<endl;
        cout<<first->key<<endl;
    first=first->next;
    }
} 
 
int Sorted_List::size()
{
    int count=0;
    first=head;
    while(first!=0){//ТУТ БЫЛ БЕСКОНЕЧНЫЙ ЦИКЛ
        count++;
        first=first->next;
     }
     return count;
}
1
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 26
05.12.2012, 00:44  [ТС]
в данном случае внутренний класс никак нельзя сделать приватным и некоторые его переменные? можете еще проверить главную программу, правильно ли я vizivaju функции, не могу запустить почему то ругается на
test.cc:2: fatal error: sorted_list.h: No such file or directory
compilation terminated.
файл включен и в той же папке
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
#include<iostream>
#include <sorted_list.h>
using namespace std;
int main()
{
Sorted_List a; //konstruktor vizivaemij na a !
Sorted_List* b; // NeSorted_List, prosto adres
b = new Sorted_List(); // konstruktor vizivaemij na *b !
 
 
a.insert(1, 3.14);
b->insert(2, 2.72);
 
a.insert_after(3, 5.67);
b->insert_after(4,5.3);
 
a.find(2);
b->find(2);
 
a.remove(1,3.14);
b->remove(2,2.72);
 
a.print();
 
a.size();
 
delete b;
 
}
Добавлено через 15 часов 11 минут
большинство проблем решено
не работают закомментированные..
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
#include<iostream>
#include "sorted_list.h"
using namespace std;
int main()
{
//Constructor called on a !
Sorted_List* b; // Not a Sorted_List, just an address
Sorted_List a;
b = new Sorted_List(); // Constructor called on *b !
// * is intentional, the constructor work on what
// b points to, not on b, b is not a Sorted_List
// Call the insert member function on list a and b
 
a.insert(1, 3.14);
 
b->insert(2, 2.72);
 
 
a.insert_after(1, 5.67);
b->insert_after(1,5.3);
 
a.print();
b->print();
/*
a.find(2);
b->find(2);*/
 
//a.remove(1,3.14);
//b->remove(2,2.72);
 
 
//cout<<"size"<<endl;
//a.size();
// The above is C++ syntax for list_insert(&a, 1, 3.14);
//delete b; // Destructor called on *b !
delete b;
// ... a lot of other code
} // Destructor called on a (not on “just an address” b)!
Добавлено через 9 часов 41 минуту
осталась одна проблема
как правильно вызвать данную функцию?

value_t find(key_t key);

cout<<a.find(1)<<endl;? (segmentation fault)

Добавлено через 20 часов 39 минут
со всем разобрался , все работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2012, 00:44
Помогаю со студенческими работами здесь

ISO C++ forbids declaration of 'c' with no type
Компилятор выдает ошибку при выполнении данного кода, в чем ошибка? #include &lt;iostream&gt; using namespace std; template...

ISO C++ forbids declaration of 'main' with no type
Здравствуйте! Возникла ошибка в коде, никак не могу понять что где неправильно написал. Помогите кто может! Заранее благодарен! Задание...

Ошибка при сборке "ISO C++ forbids declaration of ‘p’ with no type [-fpermissive]"
Добрый день. Пробую запустить код с этого сайта. Сам код (пути до файлов указал свои) #include &lt;opencv/cv.h&gt; #include...

Ошибка: forbids declaration of 'magic' with no type expected ';' before '.' token
пишет &quot;forbids declaration of 'magic' with no type expected ';' before '.' token&quot; не могу найти где ? #include &lt;iostream&gt; #include...

ISO C++ forbids. error
#ifndef CPYRAMID_H #define CPYRAMID_H class cPoint3d { public: cPoint3d() : x_(0.0),y_(0.0),z_(0.0) {}; ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru