我是C ++的初学者。在大学读第一道菜。我正在尝试制作有序的链表类,我在书中做同样的方式,但仍然有错误。你能帮我解决这个问题吗? 错误C2259无法实例化抽象类。
Visual Studio 2017。
头文件ListType
#ifndef H_ListType
#define H_ListType
template <class Type>
class linkedListType
{
public:
virtual void inserFirst(const Type& newItem) = 0;
~linkedListType();
};
#endif
头文件ordered.h
#ifndef H_ordered
#define H_ordered
#include "ListType.h"
template <class Type>
class orderedLinkedList : public linkedListType<Type>
{
public:
void insertFirst(const Type& newItem);
};
template <class Type>
void orderedLinkedList<Type>::insertFirst(const Type& newItem)
{
; // NOP
}
#endif
主要源文件
#include "ordered.h"
#include "ListType.h"
void main()
{
orderedLinkedList<int> List1;
_getwch();
}
答案 0 :(得分:4)
您可能合理地希望第二种方法覆盖第一种方法:
virtual void linkedListType::inserFirst(const Type& newItem) = 0;
void orderedLinkedList::insertFirst(const Type& newItem)
但不幸的是你有拼写错误 - inserFirst
不与insertFirst
的功能相同。
这是override
说明符旨在解决的问题。