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

时间:2013-11-10 19:10:01

标签: c++ compiler-errors linked-list doubly-linked-list

好的,所以我决定开始刷掉我的c ++知识中的灰尘,并开始使用链接列表做一些简单的例子,但是我得到了一些错误。我的Node类是 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(基类)
  • 语法错误:缺少';'在'*'之前 - &gt; List.h声明TestClass * last;

你能伸出援助之手吗?

2 个答案:

答案 0 :(得分:1)

在使用类型之前,#include "TestClass.h中的

List.h

答案 1 :(得分:1)

标题列表类应包含标题节点标题,因为它引用了它的声明。