将临时变量分配给列表的第一个变量的链表错误

Linked List error assigning temp variable to first variable of list

所以我一直在使用链表,我试图将临时变量分配给列表中的第一个节点,但它出错了

我将临时节点设置为列表的代码

Node *temp = NULL;
Node *found = NULL;
bool isfound = false;

temp = list;

LinkedList中list定义的地方class

#ifndef LINKEDLIST_H
#define LINKEDLIST_H
#include "Node.h"


class LinkedList{

private:

Node *list; 
Node *createNode();
Node *searchLocation(int);
public:
LinkedList();
~LinkedList();
void insertNode();
void deleteNode(int);
void printList();
void searchNode();

};

#endif

节点header

#ifndef NODE_H
#define NODE_H

class Node{
public:
char lastName[20];
char firstName[20];
int idNumber;
Node *next;
Node *head;

Node(char a[], char b[], int i);
void printNode();

};

#endif

节点class

 #include <iostream>
 #include "Node.h"
 using namespace std;
 Node::Node(char a[], char b[], int i){

 *lastName = *a;
 *firstName = *b;
 idNumber = i;

 }

 void Node::printNode(){

 cout<<lastName<<", "<<firstName<<": "<<idNumber<<endl;

 }

错误说无法在赋值 temp = list 中从 LinkedList* 转换为 Node*;

假设该列表是一个 LinkedList *,那么 temp = list->list; 应该可以工作。

你没有说明你在哪里声明列表对象,但是从错误中我可以看出它是LinkedList*类型的。 如果你想指向第一个节点,那么你必须分配 temp = list->list.

当然,由于列表是 LinkedList 的私有成员,因此您不能在 LinkedList 之外执行此操作 class。 所以你需要提供一个访问器函数,returns 这个节点对象。