我写了一堂课来帮助我们了解数据结构。我以前成功使用过这种方法,但这次它不喜欢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){};
答案 0 :(得分:0)
中的问题
LinkedListInterface * Factory::getLinkedList
{
return new linkedlist();
}
在调用linkedlist()构造函数之后,运算符new return linkedlist *。这里的代码假设转换为LinkedListInterface *不正确,对于编译,必须明确转换。
LinkedListInterface * Factory::getLinkedList()
{
return (LinkedListInterface* ) new linkedlist();
}