Я не знаю, что я сделал, потому что он работал нормально (то есть имелись разные ошибки), а потом вдруг весь мой класс просто не существовал или что-то, потому что теперь все мои объявления функций и определения просто не выполняются. Я не знаю что не так.
Я не могу найти никаких проблем с включениями, синтаксисом, заголовками, защитой заголовков, правописанием. Я буквально ничего не могу найти. Я надеюсь, что это что-то глупое, но я не понимаю, почему он это делает. Кто-нибудь, пожалуйста, помогите! Я поместил свой #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 имеют ту же ошибку, что и вторая