错误C2259无法实例化抽象类

时间:2018-04-23 16:36:01

标签: c++

我是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();
}

1 个答案:

答案 0 :(得分:4)

您可能合理地希望第二种方法覆盖第一种方法:

virtual void linkedListType::inserFirst(const Type& newItem) = 0;
        void orderedLinkedList::insertFirst(const Type& newItem)

但不幸的是你有拼写错误 - inserFirst insertFirst的功能相同。

这是override说明符旨在解决的问题。