Я пытаюсь создать приложение со связанным списком, используя язык программирования C ++ и такие функции, как наследование и т. Д.
Я разделил интерфейс и реализацию в разных файлах, но не смог скомпилировать.
Ниже приведен список файлов
Интерфейсные файлы: - node.h, abstractList.h, singleLinkedList.h
Файлы реализации: singleLinkedList.cpp
node.h
#ifndef NODE_H
#define NODE_H
#include <iostream>
struct nodeType {
int data;
struct nodeType *next;
}listNode;
#endif
abstractList.h
#ifndef ABSTRACT_LIST_H
#define ABSTRACT_LIST_H
#include <iostream>
#include "node.h"
#include "singleLinkedList.h"
class abstractList {
public:
virtual ~abstractList();
virtual bool isEmpty(Node* ) = 0;
virtual int get(const int&) = 0;
virtual int indexOf(const int& ) = 0;
virtual Node insert(const int& , const int& ) = 0;
virtual void delete(const int& ) = 0;
};
#endif
singleLinkedList.h
#ifndef SINGLE_LIST_H
#define SINGLE_LIST_H
#include <iostream>
#include "node.h"
#include "abstractList.h"
class singleLinkedList : public abstractList {
public:
singleLinkedList();
~singleLinkedList();
Node populateList( );
private:
void checkIndex();
int data;
Node head;
};
#endif
Пока что я только что закодировал функцию populateList () в файле внедрения, здесь идет файл реализации.
singleLinkedList.cpp
#include <iostream>
#include "node.h"
#include "singleLinkedList.h"
#include "abstractList.h"
Node singleLinkedList :: populateList()
{
Node temp;
int data;
temp = head;
char ch;
std::cout<<"Enter Data? (y/n) " << std::endl;
std::cin>>ch;
while(ch == 'Y' || ch == 'y')
{
std::cout<<"Enter the data that you would like to store.\n"<<std::endl;
std::cin>>data;
temp = new Node();
temp->data = data;
temp->next = head;
head = temp;
std::cout<<"Enter more data?"<<std::endl;
std::cin>>"\n">>ch;
}
return temp;
}
Когда я даю g ++ -c singleLinkedList.cpp, я получаю много ошибок. Я почти уверен, что сделал что-то глупое. Кто-нибудь может, пожалуйста, указать мою ошибку?
РЕДАКТИРОВАТЬ: журнал ошибок со специфическими проблемами.
struct nodeType {
int data;
struct nodeType *next;
}listNode;
virtual listNode * insert ();
Правильно ли приведенное выше утверждение?
Спасибо
Келли