Здесь я хочу объявить класс, который будет представлять записи, и он должен иметь возможность хранить значения типа integer, string, float в одной строке. У него также должна быть функция распечатки всех значений.
Я думаю о перегрузке нескольких операторов, но я не могу извинить это, если кто-нибудь поможет мне с этим, пожалуйста.
//header file
#ifndef UNSORTEDARRAY_H_INCLUDED
#define UNSORTEDARRAY_H_INCLUDED
const int MAX_ITEMS = 5;
template <class ItemType>
class UnsortedArray
{
public :
UnsortedArray();
void MakeEmpty();
bool IsFull();
int LengthIs();
void InsertItem(ItemType);
void DeleteItem(ItemType);
void RetrieveItem(ItemType&, bool&);
void ResetList();
void GetNextItem(ItemType&);
private:
int length;
ItemType info[MAX_ITEMS];
int currentPos;
};
#endif // UNSORTEDARRAY_H_INCLUDED
//source file
#include "UnsortedArray.h"
template <class ItemType>
UnsortedArray<ItemType>::UnsortedArray()
{
length = 0;
currentPos = -1;
}
template <class ItemType>
void UnsortedArray<ItemType>::MakeEmpty()
{
length = 0;
}
template <class ItemType>
bool UnsortedArray<ItemType>::IsFull()
{
return (length == MAX_ITEMS);
}
template <class ItemType>
int UnsortedArray<ItemType>::LengthIs()
{
return length;
}
template <class ItemType>
void UnsortedArray<ItemType>::InsertItem(ItemType item)
{
info[length] = item;
length++;
}
template <class ItemType>
void UnsortedArray<ItemType>::DeleteItem(ItemType item)
{
int location = 0;
while (item != info[location]){
location++;}
info[location] = info[length - 1];
length--;
}
template <class ItemType>
void UnsortedArray<ItemType>::RetrieveItem(ItemType& item, bool &found)
{
int location = 0;
bool moreToSearch = (location < length);
found = false;
while (moreToSearch && !found)
{
if(item == info[location])
{
found = true;
item = info[location];
}
else
{
location++;
moreToSearch = (location < length);
}
}
}
template <class ItemType>
void UnsortedArray<ItemType>::ResetList()
{
currentPos = -1;
}
template <class ItemType>
void UnsortedArray<ItemType>::GetNextItem(ItemType& item)
{
currentPos++;
item = info [currentPos] ;
}