Это не домашний вопрос.Я взял структуры данных в Общественном колледже, и теперь, когда я учусь в университете, я поговорил с преподавателем об этом классе структур данных.Теперь, так как это действительно отличается, и класс, который я взял, переведен, Он дал мне одно из заданий и сказал: «Играй с ним».Мы никогда не делали никаких контейнеров, упаковщиков, шаблонов ... Итак, я немного растерялся, и я пытаюсь в этом разобраться.Я не новичок в списке ссылок, очереди, стеке, круговых массивах, деревьях и т. Д. Мы просто никогда не делали никакой иерархии ADT с объектом, контейнером.
У меня нет книги по иерархии ADT - контейнер, объект. Может кто-нибудь порекомендовать один.не уверен, что посмотреть?просто ADT?
Вот моя проблема.Я пытаюсь завершить этот код, который он дал мне .. Я пытаюсь написать функцию operator ++ () = 0;Я не уверен насчет синтаксиса
#ifndef ITERATOR_H
#define ITERATOR_H
#include "Object.h"
class Iterator
{
public:
virtual ~Iterator ();
virtual void Reset () = 0;
virtual bool IsDone () const = 0;
virtual Object& operator * () const = 0;
virtual void operator ++ () = 0;
};
#endif
, а вот заголовок контейнера ..
#ifndef CONTAINER_H
#define CONTAINER_H
#include <ostream>
#include "Object.h"
#include "Ownership.h"
#include "Iterator.h"
#include "Visitor.h"
class Container : public virtual Object, public virtual Ownership
{
protected:
unsigned int count;
Container ();
public:
virtual unsigned int Count () const;
virtual bool IsEmpty () const;
virtual bool IsFull () const;
// virtual HashValue Hash () const;
virtual void Put (ostream&) const;
virtual Iterator& NewIterator () const;
virtual void Purge () = 0;
virtual void Accept (Visitor&) const = 0;
};
#endif
, а вот файл container.cpp, где мне нужна помощь с синтаксисом для ++
#include <iostream>
#include "Container.h"
void Container::Purge()
{
if (IsOwner())
count = 0;
}
Container::Container () :
count (0)
{}
unsigned int Container::Count () const
{ return count; }
bool Container::IsEmpty () const
{ return Count () == 0; }
bool Container::IsFull () const
{ return false; }
Iterator Iterator::operator ++() //syntax wrong..
{
return;
}
Iterator& Container::NewIterator() const
{
return *new Container (*this);
}
Я также не уверен, сделал ли я виртуальный Iterator & NewIterator () const;право?