Класс не называет тип данных? - PullRequest
0 голосов
/ 08 октября 2019

Я не знаю, что я сделал, потому что он работал нормально (то есть имелись разные ошибки), а потом вдруг весь мой класс просто не существовал или что-то, потому что теперь все мои объявления функций и определения просто не выполняются. Я не знаю что не так.

Я не могу найти никаких проблем с включениями, синтаксисом, заголовками, защитой заголовков, правописанием. Я буквально ничего не могу найти. Я надеюсь, что это что-то глупое, но я не понимаю, почему он это делает. Кто-нибудь, пожалуйста, помогите! Я поместил свой #include файла cpp для LinkedList в заголовок и включил заголовок в cpp как обычно и включил в оба, и ни один из них не работал. У меня есть трижды прочитать все слова, чтобы убедиться, что все написание и все совпадают.

LinkedList.h

#ifndef LINKEDLIST_H
#define LINKEDLIST_H

#include "SLNode.h"
#include "ListInterface.h"


template <typename ItemType>
class LinkedList: public ListInterface<ItemType>
{
public:
    LinkedList();
    void addFront(SLNode<ItemType>* entry);

    bool isEmpty();
    int getLength () const;
    void insert(int newPosition, const ItemType &newEntry);
    void remove (int position);
    void clear();
    ItemType getEntry(int position) const;
    void setEntry (int position, const ItemType& newEntry);


private:
    SLNode<ItemType>* m_front;
};
#include "LinkedList.cpp"

#endif // LINKEDLIST_H

LinkedList.cpp

#include <iostream>

template <typename ItemType>
LinkedList<ItemType>::LinkedList()
{
    m_front = nullptr;
}

template <typename ItemType>
void LinkedList<ItemType>::addFront(SLNode<ItemType> *entry){}

template <typename ItemType>
bool LinkedList<ItemType>::isEmpty (){}

template <typename ItemType>
int LinkedList<ItemType>::getLength() const{}

template <typename ItemType>
void LinkedList<ItemType>::insert(int newPosition, const ItemType &newEntry){}

template <typename ItemType>
void LinkedList<ItemType>::remove(int position){}

template <typename ItemType>
void LinkedList<ItemType>::clear() {}

template <typename ItemType>
ItemType LinkedList<ItemType>::getEntry(int position) const {}


template <typename ItemType>
void LinkedList<ItemType>::setEntry(int position, const ItemType &newEntry){}

ListInterface.h

ListInterface.h
#ifndef _LIST_INTERFACE
#define _LIST_INTERFACE

#include "PrecondViolatedExcep.h"

template<class ItemType>
class ListInterface
{
public:
   /** Virtual destructor allows concrete implementations to clean up
   heap memory when the List is discarded. */

   virtual ~ListInterface() {}

   /** Sees whether this list is empty.
    @return True if the list is empty; otherwise returns false. */

   virtual bool isEmpty() const = 0;

   /** Gets the current number of entries in this list.
    @return The integer number of entries currently in the list. */

   virtual int getLength() const = 0;

   /** Inserts an entry into this list at a given position.
    @pre  None.
    @post  If 1 <= position <= getLength() + 1 and the insertion is
   successful, newEntry is at the given position in the list, and
   other entries are renumbered accordingly.
    @param newPosition  The list position at which to insert newEntry.
    @param newEntry  The entry to insert into the list.
    @throw  PrecondViolatedExcep if insertion cannot be performed. */

   virtual void insert(int newPosition, const ItemType& newEntry) /* 
throw(PrecondViolatedExcep) */ = 0;

    /** Removes the entry at a given position from this list.
    @pre  None.
    @post  If 1 <= position <= getLength() and the removal is successful,
   the entry at the given position in the list is removed, and other
   items are renumbered accordingly.
    @param position  The list position of the entry to remove.
    @throw  PrecondViolatedExcep if removal cannot be performed. */

   virtual void remove(int position) /* throw(PrecondViolatedExcep) */ = 0;

   /** Removes all entries from this list.
    @post  List contains no entries and the count of items is 0. */

  virtual void clear() = 0;

    /** Gets the entry at the given position in this list.
    @pre  1 <= position <= getLength().
    @post  The desired entry has been returned.
    @param position  The list position of the desired entry.
    @throw  PrecondViolatedExcep if no such entry exists. */

   virtual ItemType getEntry(int position) const /* 
   throw(PrecondViolatedExcep) */ = 0;

   /** Replaces the entry at the given position in this list.
    @pre  1 <= position <= getLength().
    @post  The entry at the given position is newEntry.
    @param position  The list position of the entry to replace.
    @param newEntry  The replacement entry.
    @throw  PrecondViolatedExcep if no such entry exists. */

   virtual void setEntry(int position, const ItemType& newEntry) /* 
throw(PrecondViolatedExcep) */ = 0;

}; // end ListInterface
#endif

Ошибки: LinkedList.cpp: 4: ошибка: «LinkedList» не называет тип LinkedList :: LinkedList ()

Lab-04 / LinkedList.cpp: 10: ошибка: ожидаемый инициализатор перед '<' токеном void LinkedList :: addFront (SLNode * entry) </p>

все функции в cpp имеют ту же ошибку, что и вторая

1 Ответ

0 голосов
/ 08 октября 2019

Мне это выглядит хорошо, я думаю, что ваша функция isEmpty () не переопределена, так как она объявляет const в интерфейсеНо это реализовано без const в производном классе. Вы также не указали класс SLNode, другие проблемы можно найти там

...