亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? chapc-0.htm

?? java設計范式.rar
?? HTM
字號:
<HTML><HEAD><TITLE>Foundation Classes</TITLE><SCRIPT>function setFocus() {		if ((navigator.appName != "Netscape") && (parseFloat(navigator.appVersion) == 2)) {	return;	} else {	self.focus();	}}</SCRIPT></HEAD><BODY BGCOLOR=#FFFFFF      TEXT=#000000onLoad="setFocus()";><A NAME="top"></A><A NAME="chapter_foundation"></A><P>This appendix documents the foundation classes we use in the C++sample code of several design patterns. We've intentionally kept theclasses simple and minimal.  We describe the following classes:</P><UL><A NAME="auto1000"></A><LI><A HREF="#secC-1"><CODE>List</CODE></A>, an ordered list of objects.</LI><A NAME="auto1001"></A><P></P><A NAME="auto1002"></A><LI><A HREF="#secC-2"><CODE>Iterator</CODE></A>,the interface for accessing an aggregate's objects in a sequence.</LI><A NAME="auto1003"></A><P></P><A NAME="auto1004"></A><LI><A HREF="#secC-3"><CODE>ListIterator</CODE></A>,an iterator for traversing a <CODE>List</CODE>.</LI><A NAME="auto1005"></A><P></P><A NAME="auto1006"></A><LI><A HREF="#secC-4"><CODE>Point</CODE></A>,a two-dimensional point.</LI><A NAME="auto1007"></A><P></P><A NAME="auto1008"></A><LI><A HREF="#secC-5"><CODE>Rect</CODE></A>, an axis-aligned rectangle.</LI></UL><A NAME="auto1009"></A><P>Some newer C++ standard types may not be available on allcompilers.  In particular, if your compiler doesn't define<CODE>bool</CODE>, then define it manually as</P><A NAME="auto1010"></A><PRE>    typedef int bool;    const int true = 1;    const int false = 0;</PRE><A NAME="secC-1"></A><H2><A HREF="#secC-2"><IMG SRC="gifsb/down3.gif" BORDER=0 ALT="next: Iterator"></A>List</H2><A NAME="auto1011"></A><P>The <CODE>List</CODE> class template provides a basic container forstoring an ordered list of objects. <CODE>List</CODE> stores elements byvalue, which means it works for built-in types as well as classinstances. For example, <CODE>List<int></CODE> declares a list of<CODE>int</CODE>s. But most of the patterns use <CODE>List</CODE> tostore pointers to objects, as in <CODE>List<Glyph*></CODE>.  That way<CODE>List</CODE> can be used for heterogeneous lists.</P><A NAME="auto1012"></A><P>For convenience, <CODE>List</CODE> also provides synonyms for stackoperations, which make code that uses <CODE>List</CODE> for stacks moreexplicit without defining another class.</P><A NAME="auto1013"></A><PRE>    template &lt;class Item>    class List {    public:        List(long size = DEFAULT_LIST_CAPACITY);        List(List&amp;);        ~List();        List&amp; operator=(const List&amp;);            long Count() const;        Item&amp; Get(long index) const;        Item&amp; First() const;        Item&amp; Last() const;        bool Includes(const Item&amp;) const;            void Append(const Item&amp;);        void Prepend(const Item&amp;);            void Remove(const Item&amp;);        void RemoveLast();        void RemoveFirst();        void RemoveAll();            Item&amp; Top() const;        void Push(const Item&amp;);        Item&amp; Pop();    };</PRE><A NAME="auto1014"></A><P>The following sections describe these operations in greater detail.</P><H3>Construction, Destruction, Initialization, and Assignment</H3><DL><DT><CODE>List(long size)</CODE></DT><DD>initializes the list.  The <CODE>size</CODE> parameter is a hint forthe initial number of elements.</DD><A NAME="auto1015"></A><P></P><DT><CODE>List(List&amp;)</CODE></DT><DD>overrides the default copy constructor so that member data areinitialized properly.</DD><A NAME="auto1016"></A><P></P><DT><CODE>~List()</CODE></DT><DD>frees the list's internal data structures but <EM>not</EM> theelements in the list.  The class is not designed for subclassing;therefore the destructor isn't virtual.</DD><A NAME="auto1017"></A><P></P><DT><CODE>List&amp; operator=(const List&amp;)</CODE></DT><DD>implements the assignment operation to assign member data properly.</DD></DL><H3>Accessing</H3><A NAME="auto1018"></A><P>These operations provide basic access to the list's elements.<DL><DT><CODE>long Count() const</CODE></DT><DD>returns the number of objects in the list.</DD><A NAME="auto1019"></A><P></P><DT><CODE>Item&amp; Get(long index) const</CODE></DT><DD>returns the object at the given index.</DD><A NAME="auto1020"></A><P></P><DT><CODE>Item&amp; First() const</CODE></DT><DD>returns the first object in the list.</DD><A NAME="auto1021"></A><P></P><DT><CODE>Item&amp; Last() const</CODE></DT><DD>returns the last object in the list.</DD></DL><H3>Adding</H3><DL><DT><CODE>void Append(const Item&amp;)</CODE></DT><DD>adds the argument to the list, making it the last element.</DD><A NAME="auto1022"></A><P></P><DT><CODE>void Prepend(const Item&amp;)</CODE></DT><DD>adds the argument to the list, making it the first element.</DD></DL><H3>Removing</H3><DL><DT><CODE>void Remove(const Item&amp;)</CODE></DT><DD>removes the given element from the list. This operation requiresthat the type of elements in the list supports the<CODE>==</CODE> operator for comparison.</DD><A NAME="auto1023"></A><P></P><DT><CODE>void RemoveFirst()</CODE></DT><DD>removes the first element from the list.</DD><A NAME="auto1024"></A><P></P><DT><CODE>void RemoveLast()</CODE></DT><DD>removes the last element from the list.</DD><A NAME="auto1025"></A><P></P><DT><CODE>void RemoveAll()</CODE></DT><DD>removes all elements from the list.</DD></DL><H3>Stack Interface</H3><DL><DT><CODE>Item&amp; Top() const</CODE></DT><DD>returns the top element (when the List is viewed as a stack).</DD><A NAME="auto1026"></A><P></P><DT><CODE>void Push(const Item&amp;)</CODE></DT><DD>pushes the element onto the stack.</DD><A NAME="auto1027"></A><P></P><DT><CODE>Item&amp; Pop()</CODE></DT><DD>pops the top element from the stack.</DD></DL><A NAME="secC-2"></A><H2><A HREF="#secC-3"><IMG SRC="gifsb/down3.gif" BORDER=0 ALT="next: ListIterator"></A>Iterator</H2><A NAME="auto1028"></A><P><CODE>Iterator</CODE> is an abstract class that defines a traversalinterface for aggregates.</P><A NAME="auto1029"></A><PRE>    template &lt;class Item>    class Iterator {    public:        virtual void First() = 0;        virtual void Next() = 0;        virtual bool IsDone() const = 0;        virtual Item CurrentItem() const = 0;    protected:        Iterator();    };</PRE><A NAME="auto1030"></A><P>The operations do the following:</P><DL><DT><CODE>virtual void First()</CODE></DT><DD>positions the iterator to the first object in the aggregate.</DD><A NAME="auto1031"></A><P></P><DT><CODE>virtual void Next()</CODE></DT><DD>positions the iterator to the next object in the sequence.</DD><A NAME="auto1032"></A><P></P><DT><CODE>virtual bool IsDone() const</CODE></DT><DD>returns <CODE>true</CODE> when there are no more objects in the sequence.</DD><A NAME="auto1033"></A><P></P><DT><CODE>virtual Item CurrentItem() const</CODE></DT><DD>returns the object at the current position in the sequence.</DD></DL><A NAME="secC-3"></A><H2><A HREF="#secC-4"><IMG SRC="gifsb/down3.gif" BORDER=0 ALT="next: Point"></A>ListIterator</H2><A NAME="auto1034"></A><P><CODE>ListIterator</CODE> implements the <CODE>Iterator</CODE> interfaceto traverse List objects.  Its constructor takes a list to traverse asan argument.</P><A NAME="auto1035"></A><PRE>    template &lt;class Item>    class ListIterator : public Iterator&lt;Item> {    public:        ListIterator(const List&lt;Item>* aList);            virtual void First();        virtual void Next();        virtual bool IsDone() const;        virtual Item CurrentItem() const;    };</PRE><A NAME="secC-4"></A><H2><A HREF="#secC-5"><IMG SRC="gifsb/down3.gif" BORDER=0 ALT="next: Rect"></A>Point</H2><A NAME="auto1036"></A><P><CODE>Point</CODE> represents a point in a two-dimensional Cartesiancoordinate space.  <CODE>Point</CODE> supports some minimal vector arithmetic.The coordinates of a <CODE>Point</CODE> are defined as</P><A NAME="auto1037"></A><PRE>    typedef float Coord;</PRE><A NAME="auto1038"></A><P><CODE>Point</CODE>'s operations are self-explanatory.</P><A NAME="auto1039"></A><PRE>    class Point {    public:        static const Point Zero;	            Point(Coord x = 0.0, Coord y = 0.0);            Coord X() const;  void X(Coord x);        Coord Y() const;  void Y(Coord y);            friend Point operator+(const Point&amp;, const Point&amp;);        friend Point operator-(const Point&amp;, const Point&amp;);        friend Point operator*(const Point&amp;, const Point&amp;);        friend Point operator/(const Point&amp;, const Point&amp;);            Point&amp; operator+=(const Point&amp;);        Point&amp; operator-=(const Point&amp;);        Point&amp; operator*=(const Point&amp;);        Point&amp; operator/=(const Point&amp;);            Point operator-();            friend bool operator==(const Point&amp;, const Point&amp;);        friend bool operator!=(const Point&amp;, const Point&amp;);            friend ostream&amp; operator&lt;&lt;(ostream&amp;, const Point&amp;);        friend istream&amp; operator>>(istream&amp;, Point&amp;);    };</PRE><A NAME="auto1040"></A><P>The static member <CODE>Zero</CODE> represents <CODE>Point(0, 0)</CODE>.<A NAME="secC-5"></A><H2><A HREF="#last"><IMG SRC="gifsb/down3.gif" BORDER=0 ALT="next: navigation"></A>Rect</H2><A NAME="auto1041"></A><P><CODE>Rect</CODE> represents an axis-aligned rectangle. A<CODE>Rect</CODE> is defined by an origin point and an extent (thatis, width and height).  The <CODE>Rect</CODE> operations areself-explanatory.</P><A NAME="auto1042"></A><PRE>    class Rect {    public:        static const Rect Zero;	            Rect(Coord x, Coord y, Coord w, Coord h);        Rect(const Point&amp; origin, const Point&amp; extent);            Coord Width() const;   void Width(Coord);        Coord Height() const;  void Height(Coord);        Coord Left() const;    void Left(Coord);        Coord Bottom() const;  void Bottom(Coord);            Point&amp; Origin() const; void Origin(const Point&amp;);        Point&amp; Extent() const; void Extent(const Point&amp;);            void MoveTo(const Point&amp;);        void MoveBy(const Point&amp;);            bool IsEmpty() const;        bool Contains(const Point&amp;) const;    };</PRE><A NAME="auto1043"></A><P>The static member <CODE>Zero</CODE> is equivalent to the rectangle</P><A NAME="auto1044"></A><PRE>    Rect(Point(0, 0), Point(0, 0));</PRE><A NAME="last"></A><P><A HREF="#top"><IMG SRC="gifsb/up3.gif" BORDER=0></A><BR><A HREF="bibfs.htm" TARGET="_mainDisplayFrame"><IMG SRC="gifsb/rightar3.gif"	ALIGN=TOP BORDER=0></A> <A HREF="bibfs.htm"	TARGET="_mainDisplayFrame">Bibliography</A><BR><A HREF="chapBfs.htm" TARGET="_mainDisplayFrame"><IMG SRC="gifsb/leftarr3.gif"	ALIGN=TOP BORDER=0></A> <A HREF="chapBfs.htm"	TARGET="_mainDisplayFrame">Guide to Notation</A></P></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女精品一区二区| 色综合天天综合| 91小视频免费看| 91精品福利在线一区二区三区| 欧美国产激情二区三区| 日韩黄色一级片| 日本精品一级二级| 亚洲国产精品ⅴa在线观看| 午夜成人免费视频| 91国偷自产一区二区开放时间| 久久久亚洲精品石原莉奈 | 欧美精品1区2区| 一区二区在线免费| 不卡视频免费播放| 国产日本欧洲亚洲| 国产专区欧美精品| 亚洲精品一区二区三区四区高清| 亚洲成人综合在线| 在线欧美日韩国产| 亚洲色大成网站www久久九九| 国产精品一区二区三区99| 欧美猛男gaygay网站| 亚洲人成人一区二区在线观看| 处破女av一区二区| 久久久99精品免费观看不卡| 久久精品国产一区二区| 日韩女优av电影在线观看| 日韩电影一区二区三区四区| 欧美色中文字幕| 亚洲成人高清在线| 4hu四虎永久在线影院成人| 亚洲精品高清视频在线观看| 91丨九色丨尤物| 亚洲综合免费观看高清完整版| 色综合久久久久综合99| 亚洲精品国产a久久久久久| 色综合久久天天| 亚洲国产精品自拍| 91精品一区二区三区在线观看| 午夜久久久久久久久久一区二区| 制服丝袜av成人在线看| 美女视频一区二区| 国产午夜一区二区三区| 成人毛片在线观看| 一区二区三区在线影院| 欧美日韩国产小视频| 老鸭窝一区二区久久精品| 久久久久久久精| 一本到不卡精品视频在线观看| 亚洲一区二区三区自拍| 欧美色倩网站大全免费| 老司机免费视频一区二区三区| 国产亚洲成av人在线观看导航| 波多野结衣精品在线| 亚洲精品国产无天堂网2021 | 日韩欧美国产综合| 国产激情一区二区三区| 亚洲精品午夜久久久| 日韩一区二区三区精品视频| 国产成人精品1024| 亚洲国产综合91精品麻豆| 日韩一级片在线播放| 粉嫩久久99精品久久久久久夜| 成人免费在线观看入口| 91精品国产综合久久蜜臀| 国产综合一区二区| 亚洲综合精品久久| 亚洲精品一区二区三区99| 91麻豆.com| 国产精品性做久久久久久| 最近中文字幕一区二区三区| 777午夜精品视频在线播放| 成人污污视频在线观看| 日本亚洲一区二区| 亚洲欧美一区二区三区极速播放| 精品视频资源站| 成人免费va视频| 美女精品自拍一二三四| 亚洲色图视频网| 国产情人综合久久777777| 欧美日韩视频在线观看一区二区三区| 国产一区91精品张津瑜| 亚洲电影激情视频网站| 一区在线观看视频| 久久久99免费| 欧美一区二区三区四区五区 | 国产成人亚洲精品青草天美| 亚洲va欧美va人人爽午夜| 中文字幕免费不卡在线| 精品久久久久久久人人人人传媒| 色狠狠av一区二区三区| 成人v精品蜜桃久久一区| 免费不卡在线视频| 亚洲成av人片在www色猫咪| 国产精品灌醉下药二区| 久久亚洲一区二区三区明星换脸| 色久综合一二码| 99精品国产视频| 成人免费视频视频| 国产精品18久久久久久久网站| 日韩高清不卡一区二区三区| 亚洲一区二区av电影| 亚洲激情图片qvod| 亚洲少妇30p| 亚洲欧美欧美一区二区三区| 欧美国产精品一区| 国产精品视频第一区| 国产欧美日韩综合精品一区二区| 欧美大片在线观看一区| 欧美成人乱码一区二区三区| 欧美一区二区三区在线电影| 欧美一区二区成人| 91精品久久久久久蜜臀| 91精品国产乱| 欧美成人一区二区三区片免费| 91精品欧美综合在线观看最新| 欧美日韩中文国产| 欧美一级理论性理论a| 91精品午夜视频| 精品乱码亚洲一区二区不卡| 精品久久久久久最新网址| 久久久久97国产精华液好用吗| 久久精子c满五个校花| 国产精品网曝门| 亚洲精品精品亚洲| 视频一区欧美精品| 精品在线一区二区三区| 国内精品久久久久影院一蜜桃| 国产精品一区二区黑丝| 99久久精品国产观看| 在线看日韩精品电影| 91麻豆精品国产91久久久久| 精品国产在天天线2019| 国产精品日韩精品欧美在线| 亚洲免费观看高清在线观看| 午夜av一区二区三区| 久久国产精品免费| 波多野结衣视频一区| 欧美日韩国产免费一区二区| 精品国产乱码久久久久久浪潮| 国产精品少妇自拍| 午夜精品久久久| 国产综合色视频| 欧美在线综合视频| 欧美α欧美αv大片| 国产精品午夜免费| 日韩成人一区二区| 不卡av免费在线观看| 欧美久久久影院| 国产精品国产三级国产普通话99| 偷拍日韩校园综合在线| 成人激情免费视频| 666欧美在线视频| 成人欧美一区二区三区在线播放| 丝瓜av网站精品一区二区| 成人一级视频在线观看| 欧美影院一区二区三区| 久久精品无码一区二区三区| 亚洲成精国产精品女| 本田岬高潮一区二区三区| 日韩无一区二区| 亚洲一区精品在线| 粉嫩久久99精品久久久久久夜| 91精品婷婷国产综合久久性色| 亚洲视频一二三区| 国产成人午夜电影网| 日韩欧美一区二区不卡| 香蕉成人伊视频在线观看| 成年人午夜久久久| 久久免费美女视频| 亚洲国产成人av网| 91色.com| 欧美不卡视频一区| 婷婷开心久久网| 在线观看网站黄不卡| 中文字幕一区免费在线观看| 国精品**一区二区三区在线蜜桃| 欧美理论在线播放| 一区二区日韩电影| caoporm超碰国产精品| 久久女同性恋中文字幕| 精品影视av免费| 欧美一激情一区二区三区| 亚瑟在线精品视频| 欧美亚洲动漫另类| 亚洲综合色网站| 在线观看成人免费视频| 亚洲美女屁股眼交| 色偷偷成人一区二区三区91| 欧美国产成人精品| 成人av第一页| 综合网在线视频| 91亚洲大成网污www| 亚洲精品一卡二卡| 欧美三区在线视频| 亚洲国产欧美在线人成| 欧美日韩国产一级二级| 日韩电影一二三区| 精品三级av在线| 国产一区二区三区在线观看免费视频|