Altech
دوشنبه 18 آبان 1388, 23:45 عصر
سلام . من اين کلاس رو پياده سازي کردم . تقريبا کار تمومه . فقط چند تا مشکل دارم . قراره يه Iterator هم براي کلاس نوشته بشه . ارتباط بين Iterator و List چطوري بايد برقرار بشه ؟ مثلا مي دونين که تابع begin يه Iterator به ابتداي ليست برميگردونه . اين کارو چجوري بکنيم ؟ مثلا اين کلاس Iterator من هست :
#include "Node.h"
#include "List.h"
template< typename NODE_TYPE > class List;
template< typename NODE_TYPE >
class Iterator
{
friend class List< NODE_TYPE >;
public:
Iterator() : current( NULL ), parent( NULL )
{}
NODE_TYPE operator*()
{
if( current != NULL )
return current->data;
}
NODE_TYPE* operator->()
{
if( current != NULL )
return &(current->data);
}
Iterator operator++()
{
if( current != NULL )
{
current = current->next;
return *this;
}
}
private:
Node< NODE_TYPE >* current;
List< NODE_TYPE >* parent;
};
#include "Node.h"
#include "List.h"
template< typename NODE_TYPE > class List;
template< typename NODE_TYPE >
class Iterator
{
friend class List< NODE_TYPE >;
public:
Iterator() : current( NULL ), parent( NULL )
{}
NODE_TYPE operator*()
{
if( current != NULL )
return current->data;
}
NODE_TYPE* operator->()
{
if( current != NULL )
return &(current->data);
}
Iterator operator++()
{
if( current != NULL )
{
current = current->next;
return *this;
}
}
private:
Node< NODE_TYPE >* current;
List< NODE_TYPE >* parent;
};