将临时变量分配给列表的第一个变量的链表错误
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 这个节点对象。
所以我一直在使用链表,我试图将临时变量分配给列表中的第一个节点,但它出错了
我将临时节点设置为列表的代码
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 这个节点对象。