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

E2040 Declaration terminated incorrectly - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
TaYloR
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 38
19.12.2010, 17:11     E2040 Declaration terminated incorrectly #1
Делал прогу по очередям по книги Дейтелов, но билдер выдаёт ошибку [C++ Error] List.h(15): E2040 Declaration terminated incorrectly, не могу понть почему, помогите.
List.h:
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
#ifndef LIST_H
#define LIST_H
#include<iostream.h>
#include "Listnode.h"
template< typename NODETYPE >
class List
{
public:
        List();
        ~List();
        void insertAtFront(const NODETYPE &);
        void insertAtBack(const NODETYPE &);
        bool isEmpty() const;
    bool removeFromFront(NODETYPE &)
        void print() const;
private:
        ListNode<NODETYPE> *firstPtr;
        ListNode<NODETYPE> *lastPtr;
        ListNode<NODETYPE> *getNewNode(const NODETYPE &);
};
 
template<typename NODETYPE>
List<NODETYPE>::List()
  : firstPtr(0), lastPtr(0)
{
}
 
template<typename NODETYPE>
List<NODETYPE>::~List()
{
        if(!isEmpty())
        {
                cout<<"Destroying nodes...\n";
                ListNode<NODETYPE> *currentPtr=firstPtr;
                ListNode<NODETYPE> *tempPtr;
                while(currentPtr!=0){
                        tempPtr=currentPtr;
                        cout<<tempPtr->data<<"\n";
                        currentPtr=currentPtr->nextPtr;
                        delete tempPtr;
                     }
        {
        cout<<"All nodes destroyed\n\n"
}
 
template<typename NODETYPE>
void List<NODETYPE>::insertAtFront(const NODETYPE &value)
{
        ListNode<NODETYPE> *newPtr = getNewNode(value);
        if(isEmpty())
                firstPtr=lastPtr=newPtr;
        else
        {
                newPtr->nextPtr=firstPtr;
                firstPtr=newPtr;
        }
}
 
template<typename NODETYPE>
void List<NODETYPE>::insertAtBack(const NODETYPE &value)
{
        ListNode<NODETYPE> *newPtr=getNewNode(value);
        if(isEmpty())
                firstPtr=lastPtr=newPtr;
        else
        {
                lastPtr->nextPtr=newPtr;
                lastPtr=newPtr;
        }
}
 
template<typename NODETYPE>
bool List<NODETYPE>::isEmpty() const
{
        return firstPtr==0;
}
template<typename NODETYPE>
bool List<NODETYPE>::removeFromFront(NODETYPE &value)
{
    if(isEmpty())
        return false;
    else
    {
        ListNode<NODETYPE> *tempPtr=firstPtr;
        if(firstPtr==lastPtr)
            firstPtr=last=0;
        else
            firstPtr=firstPtr->nextPtr;
        value=tempPtr->data;
        delete tempPtr;
        return true;
    }
}
template<typename NODETYPE>
ListNode<NODETYPE> *List<NODETYPE>::getNewNode(const NODETYPE &value)
{
        return new ListNode<NODETYPE> (value);
}
 
template<typename NODETYPE>
void List<NODETYPE>::print() const{
        if(isEmpty())
        {
                cout<<"The list is empty\n\n";
                return;
        }
        ListNode<NODETYPE> *currentPtr=firstPtr;
        cout<<"The list is: ";
        while (currentPtr!=0)
        {
                cout<<currentPtr->data<<' ';
                currentPtr=currentPtr->nextPtr;
        }
        cout<<"\n\n";
}
#endif
Listnode.h:
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
#ifndef LISTNODE_H
#define LISTNODE_H
 
template< typename NODETYPE > class List;
 
template< typename NODETYPE >
class ListNode
{
friend class List<NODETYPE>;
public:
        ListNode(const NODETYPE &);
        NODETYPE getData() const;
private:
        NODETYPE data;
        ListNode<NODETYPE> *nextPtr;
};
 
template< typename NODETYPE >
ListNode<NODETYPE>::ListNode(const NODETYPE &info)
 : data(info), nextPtr(0)
{
}
 
template< typename NODETYPE >
NODETYPE ListNode<NODETYPE>::getData() const
{
return data;
}
 
#endif
Queue.h:
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
#ifndef QUEUE_H
#define QUEUE_H
#include "List.h"
 
template< typename QUEUETYPE>
class Queue: private List<QUEUETYPE>
{
public:
 
 
void enqueue(const QUEUETYPE &data)
{
        insertAtBack(data);
}
bool dequeue(QUEUETYPE &data)
{
        return removeFromFront(data);
}
bool isQueueEmpty() const
{
        return isEmpty();
}
void printQueue() const
{
        print();
}
};
#endif
Unit1.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include "Queue.h"
 
int main(){
List<int> intQueue;
int n;
for(int i=1; i<=5; i++){
        cout<<"Vvedite "<<i<<" element: ";
        cin>>n;
        intQueue.enqueue(n);
        }
cout<<"Queue is:\n";
intQueue.printQueue();
getch();
return 0;
}
Добавлено через 2 часа 1 минуту
эту ошибку решил, но появились
[C++ Warning] Unit1.cpp(6): W8058 Cannot create pre-compiled header: header incomplete
[C++ Error] Unit1.cpp(24): E2134 Compound statement missing }
Помогите исправить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2010, 17:11     E2040 Declaration terminated incorrectly
Посмотрите здесь:

C++ Ошибка: declaration terminated incorrectly
C++ [C++] Unit1.cpp(20): E2040 Declaration terminated incorrectly
C++ Структура Octal. Выдает ошибку E2040 Declaration terminated incorrectly. Не пойму в чем проблема?
Declaration terminated incorrectly в чем ошибка? C++
C++ [C++ Error] Lib.cpp(18): E2040 Declaration terminated incorrectly
Declaration terminated incorrectly C++
declaration terminated incorrectly C++
C++ Ошибка E2040 Declaration terminated incorrectly

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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