27.09.2011, 13:50. Просмотров 716. Ответов 0
вот четыре класса. по идее должны работать нормально. но выдают ошибку указанную в названии. и ещё что viewlist не найдет идентификатор.
document.h - главный базовый класс. от него наследуется 3 класса.
он содержит в себе указатель на голову списка и в своем конструкторе метод для добавления элементов в связный список.
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #include <string>
#include "NODES.h"
using namespace std;
class Document
{
public:
Document(string name="");
~Document();
string GetName();
virtual string GT()=0;
static void ViewList();
protected:
static Node *head;
private:
string name;
void ADD();
void DEL();
}; |
|
document.cpp
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
| #include "document.h"
#include <iostream>
Node *Document::head=0;
Document::Document(string name)
{
this->name=name;
ADD();
}
Document::~Document()
{
DEL();
}
string Document::GetName()
{
return name;
}
void Document::ViewList()
{
Node *node=head;
while(node!=0)
{
cout<<"Type of doc."<<node->document->GT()<<" |Name:"<<node->document->GetName()<<endl;
node=node->next;
}
}
void Document::ADD()
{
Node *newnode=new Node;
newnode->document=this;
newnode->next=0;
if (head==0)
{
head=newnode;
return;
}
Node *node=head;
while(node->next!=0)
{
node=node->next;
}
node->next=newnode;
}
void Document::DEL()
{
if (head==0)
return;
if (head->document==this)
{
Node *deleter=head;
head=deleter->next;
delete deleter;
return;
}
Node *node=head;
while((node->next!=0)&&(node->next->document!=this))
{
node=node->next;
}
Node *deleter=node->next;
node->next=deleter->next;
delete deleter;
} |
|
т.к. 4 .h файла и 4.cpp то я просто весь проект приложил.
Не по теме:
там надо считывать значения с формы но я пока этого не делал, т.к. надо вот эти ошибки убрать