好的,所以我决定开始从我的 C++ 知识中抹去灰尘,并从使用链表做一些简单的示例开始,但我遇到了一些错误。 我的节点类是 TestClass,我的链表是 List;从我所看到的情况来看,这些问题与语法有关。
节点标头:
#pragma once
class TestClass
{
public:
int x, y;
TestClass *next;
TestClass *prev;
TestClass();
TestClass(int,int);
~TestClass();
};
节点基类
#include "stdafx.h"
#include "TestClass.h"
TestClass::TestClass()
{
}
TestClass::TestClass(int _x, int _y)
{
x = _x;
y = _y;
}
TestClass::~TestClass()
{
}
标头列表类
#pragma once
class List
{
public:
TestClass *first;
TestClass *last;
List();
~List();
void AddNew(TestClass);
void PrintList();
};
列出基类
#include "stdafx.h"
#include "List.h"
#include "TestClass.h"
#include <iostream>
using namespace std;
List::List()
{
first = last = NULL;
}
List::~List()
{
}
void List::AddNew(TestClass node)
{
if (!first && !last)
{
*first = *last = node;
//first = last = &node;
}
else
{
TestClass *temp;
temp = last;
last = &node;
temp->next = last;
}
}
void List::PrintList()
{
TestClass *p = first;
while (p != NULL)
{
cout << p->x << " ";
p = p->next;
}
}
我收到大约 16 个错误,例如:
- 未声明的标识符在 List 中排在第一位,最后一个.cpp(基类)
- 语法错误:在"*"之前缺少";"-> List.h 声明 TestClass *last;
你能伸出援助之手吗?
#include "TestClass.h
List.h
使用该类型之前。
标头列表类应包含标头节点标头,因为它引用来自它的声明。