C ++错误,表示“错误LinkedList接口是链接列表的一个不可访问的基础”与创建链接列表调用

时间:2013-09-30 01:01:21

标签: c++ inheritance singly-linked-list

我写了一堂课来帮助我们了解数据结构。我以前成功使用过这种方法,但这次它不喜欢return new linkedlist();

在档案 Factory.cpp

#include "list.h"
using namespace std;

LinkedListInterface * Factory::getLinkedList
{
      return new linkedlist();
}

在档案 Factory.h

#pragma once
#include "LinkedListInterface.h"
using namespace std;

class Factory
{
     public:
         static LinkedListInterface * getLinked();

};

文件 list.h ,我有一个基本的构造函数,类名为linkedlist      #包括      使用namespace std;

 class linkedlist
 {
 private:
     typedef struct node
     {
         int data;
         node* next;
     }* nodePtr;
     nodePtr head;
     nodePtr curr;
     nodePtr temp;

  public:
         linkedlist()
         {
             head = NULL;
             curr = NULL;
             temp = NULL;
         }
   ......
   };
  there are other functions but i dont think they causing my problem.

这是来自我教授的LinkeListInterface.h。该文件的其余部分是我确保包含在list.h中的虚方法       #pragma一次     #include

using namespace std;

class LinkedListInterface
{

public:

    LinkedListInterface(void){};
    virtual ~LinkedListInterface(void){};

1 个答案:

答案 0 :(得分:0)

中的问题
LinkedListInterface * Factory::getLinkedList
{
      return new linkedlist();
}
在调用linkedlist()构造函数之后,

运算符new return linkedlist *。这里的代码假设转换为LinkedListInterface *不正确,对于编译,必须明确转换。

LinkedListInterface * Factory::getLinkedList()
{
      return (LinkedListInterface* ) new linkedlist();
}