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

Ошибка С1001 - C++

Восстановить пароль Регистрация
 
FireStar
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 12
06.12.2012, 18:45     Ошибка С1001 #1
При компиляции выдаёт ошибку компилятора. В чём может быть проблема? При комментировании List (const List &) компилируется, но вылетает с ошибкой о недостаче прав.
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
#include "iostream"
using namespace std;
template <typename T>
 
 
 
class List
{
private:
    struct Element
    {
        T data;
        Element * next;
    };
    Element * head;
    Element * cur;
    Element * prev;
    List (const List &);
    List & operator =(const List &);
public:
   
List<T>::List(void)
{
    head(0);
}
 
 
List<T>::~List(void)
{
    Element * p = head;
    while (p != 0)
    {
        Element * next = p->next;
        delete p;
        p = next;
    }
}
 
 
void List<T>::push_front(T el)
{
    Element * temp = new Element;
    temp->data = el;
    if (head == NULL)
    {
        head = temp;
    }
    Element * newHead = temp;
    newHead->next = head;
}
 
 
T List<T>::del_front(void)
{
    T x;
    if (head == NULL)
    {
        std::cout << "List is empty!";
        getchar();
        exit(1);
    }
    x = head -> data;
    Element * newHead = head->next;
    delete head;
    head = newHead;
    cout << x;
    return x;
}
 
 
void List<T>::push_back(T el)
{
    Element * temp = new Element;
    temp -> data = el;
    Element * cur;
    if (head == NULL)
    {
        head = temp;
    }
    else
    {
        cur = head;
        while (cur -> next != NULL)
        {
            cur = cur -> next;
        }
        cur -> next = temp;
    }
}
 
T List<T>::del_back(void)
{
    T x;
    Element * cur = head;
    while (cur -> next != NULL)
    {
        cur = cur -> next;
    }
    x = cur -> data;
    delete cur;
    cout << x;
    return x;
}
 
};
 
int main()
{
    List<int> list;
    getchar();
    for (int i = 0; i < 5; i++)
    {
        list.push_front (i);
    }
    getchar();
    list.push_front(15);
    getchar();
    list.del_front();
    getchar();
    list.push_back(10);
    getchar();
    list.del_back();
    getchar();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2012, 18:45     Ошибка С1001
Посмотрите здесь:

C++ Вылетает ошибка error C2061: синтаксическая ошибка: идентификатор "_TCHAR"
C++ Глупая ошибка, но до сих пор неисправленная ошибка: ";"
Синтаксическая ошибка: Ошибка 1 error C2059 C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.12.2012, 18:48     Ошибка С1001 #2
у оператора присваивания нет реализации
и у конструктора копирования тоже
FireStar
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 12
06.12.2012, 18:54  [ТС]     Ошибка С1001 #3
То есть, я просто должен описать эти функции в коде?

Описал. Не помогло.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.12.2012, 18:56     Ошибка С1001 #4
FireStar, ага.
Но так будут исправлены только синтаксические ошибки.
Вполне возможно, прога будет работать неверно. Я просто код практически не смотрел.
FireStar
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 12
06.12.2012, 19:10  [ТС]     Ошибка С1001 #5
Та же ошибка С1001.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.12.2012, 19:22     Ошибка С1001 #6
FireStar, как теперь выглядит код?
FireStar
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 12
06.12.2012, 19:26  [ТС]     Ошибка С1001 #7
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
134
135
136
137
138
139
140
141
142
#include "iostream"
using namespace std;
template <typename T>
 
 
 
class List
{
private:
    struct Element
    {
        T data;
        Element * next;
    };
    Element * head;
    Element * cur;
    Element * prev;
    List (const List &);
    List & operator =(const List &);
public:
   
List<T>::List(void)
{
    head(0);
}
 
 
List<T>::~List(void)
{
    Element * p = head;
    while (p != 0)
    {
        Element * next = p->next;
        delete p;
        p = next;
    }
}
 
List::List (const List &x)
 {       
    if (this == &x) 
        delete data;
data = new char[strlen(x.data) + 1];
strcpy(data, x.data);
 }
 
List List:: operator= (const List &b)
 {
    if (this == &b) 
        return *this;
        delete data;
data = new char[strlen(b.data) + 1];
strcpy(data, b.data);
return *this;
 };
 
void List<T>::push_front(T el)
{
    Element * temp = new Element;
    temp->data = el;
    if (head == NULL)
    {
        head = temp;
    }
    Element * newHead = temp;
    newHead->next = head;
}
 
 
T List<T>::del_front(void)
{
    T x;
    if (head == NULL)
    {
        std::cout << "List is empty!";
        getchar();
        exit(1);
    }
    x = head -> data;
    Element * newHead = head->next;
    delete head;
    head = newHead;
    cout << x;
    return x;
}
 
 
void List<T>::push_back(T el)
{
    Element * temp = new Element;
    temp -> data = el;
    Element * cur;
    if (head == NULL)
    {
        head = temp;
    }
    else
    {
        cur = head;
        while (cur -> next != NULL)
        {
            cur = cur -> next;
        }
        cur -> next = temp;
    }
}
 
T List<T>::del_back(void)
{
    T x;
    Element * cur = head;
    while (cur -> next != NULL)
    {
        cur = cur -> next;
    }
    x = cur -> data;
    delete cur;
    cout << x;
    return x;
}
 
};
 
int main()
{
    List<int> list;
    getchar();
    for (int i = 0; i < 5; i++)
    {
        list.push_front (i);
    }
    getchar();
    list.push_front(15);
    getchar();
    list.del_front();
    getchar();
    list.push_back(10);
    getchar();
    list.del_back();
    getchar();
    return 0;
}
prazuber
108 / 108 / 3
Регистрация: 29.04.2010
Сообщений: 240
06.12.2012, 19:37     Ошибка С1001 #8
List<T>:: поубирайте. Так же уберите
C++
1
2
    List (const List &);
    List & operator =(const List &);
FireStar
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 12
06.12.2012, 19:45  [ТС]     Ошибка С1001 #9
Убрал и исправил, как Вы сказали.
Выдаёт ошибку "Первый этап обработки исключения по адресу 0x01325101 в class_list.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000005.

Если для этого исключения имеется обработчик, выполнение программы может быть продолжено безопасно." вот в этой строке "while (cur -> next != NULL)"
Yandex
Объявления
06.12.2012, 19:45     Ошибка С1001
Ответ Создать тему

Метки
ошибка, С1001
Опции темы

Текущее время: 14:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru