#ifndef SORTEDTYPE_H_INCLUDED
#define SORTEDTYPE_H_INCLUDED
const int MAX_ITEMS = 5;
template <class T>
class SortedType
{
public :
SortedType();
void MakeEmpty();
bool IsFull();
int LengthIs();
void InsertItem(T);
void DeleteItem(T);
void RetrieveItem(T&, bool&);
void ResetList();
void GetNextItem(T&);
private:
int length;
T info[MAX_ITEMS];
int currentPos;
};
#endif // SORTEDTYPE_H_INCLUDED
#include "sortedtype.h"
template <class T>
SortedType<T>::SortedType()
{
length = 0;
currentPos = - 1;
}
template <class T>
void SortedType<T>::MakeEmpty()
{
length = 0;
}
template <class T>
bool SortedType<T>::IsFull()
{
return (length == MAX_ITEMS);
}
template <class T>
int SortedType<T>::LengthIs()
{
return length;
}
template <class T>
void SortedType<T>::InsertItem(T item)
{
int location = 0;
for(int i= 0; i<length; i++)
{
if(info[location]<item)
location++;
else
break;
}
for(int i=length; i>location;i--)
{
info[i]=info[i-1];
}
info[location]= item;
length++;
}
template <class T>
void SortedType<T>::DeleteItem(T item)
{
int location=0;
for(int i=0; i<length; i++)
{
if(info[i] == item)
break;
location++;
}
for(int i=location; i<length; i++)
{
info[i] = info[i+1];
}
length--;
}
template <class T>
void SortedType<T>::RetrieveItem(T& item, bool &found)
{
int first=0, last=length-1, mid;
while(first<=last)
{
mid=(first+last)/2;
if(info[mid]== item)
{
found=true;
return;
}
if(info[mid]<item)
{
first=mid+1;
}
else
{
last=mid-1;
}
}
found=false;
}
template <class T>
void SortedType<T>::ResetList()
{
currentPos = - 1;
}
template <class T>
void SortedType<T>::GetNextItem(T& item)
{
currentPos++;
item = info [currentPos];
}
Я получаю ошибку переопределения в файле cpp. Кто-нибудь может сказать, как это исправить? Я перепробовал все возможное. Я не понимаю, какую ошибку совершил. После создания он просто говорит «ошибка: переопределение 'SortedType :: SortedType ()» и то же самое для всех других функций. Что может убрать эту ошибку? Какие изменения можно сделать, чтобы это исправить. Я разместил написанный мной код.