}
Файл TListBasicIterator.h. Інтерфейсна частина
# pragma once
# include TList.h lt; typename T gt; TListBasicIterator
{: void nothing ()=0;: lt; T gt; * basic_cur; lt; T gt; * basic_first;: (); (const TList lt; T gt; amp; l);
~ TListBasicIterator (void);
};
Файл TListBasicIterator.cpp. Реалізаційна частина
# include stdafx.h
# include TListBasicIterator.h lt; typename T gt; lt; T gt; :: TListBasicIterator ()
{
} lt; typename T gt; lt; T gt; :: TListBasicIterator (const TList lt; T gt; amp; l)
{ gt; basic_first=l.first; gt; basic_cur=this- gt; basic_first;
} lt; typename T gt; lt; T gt; :: ~ TListBasicIterator (void)
{
}
Файл TListException.h. Інтерфейсна частина
# pragma once
# include lt; iostream gt; namespace std; TListException
{: * errmsg; errnum;: (); (char * m, int c); * GetMessage () const; GetCode () const;
~ TListException (); ostream amp; operator lt; lt; (ostream amp; os, const TListException amp; ex)
{ lt; lt; endl lt; lt; tCaught exception: lt; lt; ex.GetMessage () lt; lt; ( lt; lt; .GetCode () lt; lt; ) lt; lt; endl; os;
}
};
Файл TListException. cpp. Реалізаційна частина
# include stdafx.h
# include TListException.h
# include lt; iostream gt; namespace std; :: TListException ()
{ gt; errmsg= raquo ;; gt; errnum=0;
} :: TListException (char * m, int c)
{ gt; errmsg=m; gt; errnum=c;
} * TListException :: GetMessage () const
{this- gt; errmsg;
} TListException :: GetCode () const
{this- gt; errnum;
} :: ~ TListException ()
{
}
Файл Main.cpp (основна програма)
//Effective.cpp: визначає точку входу для консольного застосування.
//
# include stdafx.h
# include lt; iostream gt; namespace std;
# include TListBasicIterator.h
# include TArrayIterator.h
# include TLineIterator.h
# include TReverseIterator.h
# include TListException.h _tmain (int argc, _TCHAR * argv [])
{ lt; int gt; l; .AddLast (1) .AddLast (2) .AddLast (3); lt; int gt; iter (l); lt; lt; List contains: raquo ;; (~ iter; !! iter; ++ iter)
{ lt; lt; * iter lt; lt; raquo ;;
}
//cout lt; lt; endl lt; lt; Reversive: raquo ;; lt; int gt; rev (l); (~ rev; !! rev; ++ rev)
{
* rev=* rev + 1;
} lt; lt; endl lt; lt; Like an Array: raquo ;; lt; int gt; arr (l); c=arr.Count (); (int i=1; i lt;=c; i ++)
{ lt; lt; arr [i] lt; lt; raquo ;;
} lt; lt; endl; lt; lt; Through lt; cout gt ;: lt; lt; l lt; lt; endl; _s (% d ); 0;
}