настоящего времени у меня этот код для моего класса узла, который хранит два названия, идентификационный номер, и имеет следующую способность:Узла Реализация конструктора класса
class Node{
public:
char LastName[20] ;
char FirstName[20] ;
int IDnumber ;
Node *Next ;
Node();
void printNode();
};
Это конструктор, я использую для инициализации переменных узлов с клавиатуры:
Node::Node(){
cout << "Enter ID number: " << endl;
cin >> IDnumber;
cout << "Enter last name: " << endl;
cin >> LastName;
cout << "Enter first name: " << endl;
cin >> FirstName;
Next=NULL;
}
void Node::printNode(){
cout << "ID number: " << IDnumber << endl;
cout << "Last name: " << LastName <<endl;
cout << "First name: " << FirstName << endl;
}
проблема, которую я имею, что всякий раз, когда я вызвать функцию printNode() позже в своем коде, мой код не выполняет первую строку функции printNode(). (необработанное исключение) Я также не могу выполнить этот код, когда пытаюсь вызвать node-> Далее с моим отдельным классом связанных списков. Это заставляет меня думать, что я правильно не строю узел. любые идеи о том, что может быть неправильным в моем коде?
Связанный список - это отдельный класс, в котором используется класс узлов I, опубликованный выше.
class LinkedList{
private:
Node* list;
Node* createNode();
Node* searchLocation(int);
public:
LinkedList();
~LinkedList();
void InsertNode();
void SearchNode();
void PrintList();
void DeleteNode(int);
};
LinkedList::LinkedList(){
Node* list = NULL;
}
Node* LinkedList::createNode(){
Node *NewNode = new Node();
return NewNode;
}
void LinkedList::InsertNode(){
Node* insert = createNode();
if (list == NULL){
list = insert;}}
void LinkedList::PrintList(){
Node* temp = list;
while (temp != NULL){
temp->printNode();
temp = temp->Next;
}
}
функция перечень печать() мой класс LinkedList терпит неудачу, когда list-> printNode() (есть перерыв в соиЬ < < IDNumber линии), а также не в списке = list-> Далее строки.
int main(){
int num = 0;
LinkedList list;
int menu=0;
while(menu != 5){
cout << endl << "Choose a menu option." <<endl
<< "1. Insert node " << endl << "2. Delete node " << endl
<< "3. Print list" << endl << "4. Search a node & print info" << endl
<< "5. Quit program " << endl;
cin >> menu;
menu = validate(menu);
switch(menu){
case 1:
list.InsertNode();
break;
case 3:
list.PrintList();
break;
}}
return 0;
}
пожалуйста, вставьте также, как вы создаете объект Node и как использовать он позже – 4pie0
alrighty, я отправил его – user2105982
Функция 'PrintList' уничтожает единственный указатель, который у вас есть в вашем списке, действительно ли это то, что вы хотите? –