C++ 链表声明中的语法错误

syntax errors in c++ linked list declaration

本文关键字:语法 错误 链表 声明 C++      更新时间:2023-10-16

好的,所以我决定开始从我的 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使用该类型之前。

标头列表类应包含标头节点标头,因为它引用来自它的声明。