diff options
Diffstat (limited to 'doc/latex/classmeow_1_1Self.tex')
-rw-r--r-- | doc/latex/classmeow_1_1Self.tex | 240 |
1 files changed, 164 insertions, 76 deletions
diff --git a/doc/latex/classmeow_1_1Self.tex b/doc/latex/classmeow_1_1Self.tex index 5b60f6c..9043206 100644 --- a/doc/latex/classmeow_1_1Self.tex +++ b/doc/latex/classmeow_1_1Self.tex @@ -3,7 +3,7 @@ } -具有copy on write, 且擁有比\-C++更靈活的reference機制 +A little class use for packing the data part of another class. With this technique, it can achieve Copy-\/\-On-\/\-Write(C\-O\-R) mechanism at background and have a reference mechanism which much more flexible then the one C++ has. @@ -16,117 +16,162 @@ enum \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8}{Duplicate\-Type} \{ \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730}{C\-O\-P\-Y\-\_\-\-F\-R\-O\-M}, \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8a40c8a3eba568e04a5ce09ee0fa881822}{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M} \} -\begin{DoxyCompactList}\small\item\em 複製資料的方法 \end{DoxyCompactList}\end{DoxyCompactItemize} +\begin{DoxyCompactList}\small\item\em Kind of ways of duplicating. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Public Member Functions} \begin{DoxyCompactItemize} \item \hyperlink{classmeow_1_1Self_a6b39fcc4b184809f9aeaeb1c9a0bac2d}{Self} () -\begin{DoxyCompactList}\small\item\em constructor, 並宣告一個實體 \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em constructor with a real entity \end{DoxyCompactList}\item \hyperlink{classmeow_1_1Self_af3220c1e1d7966c6dbaf4ec62f8cbc2f}{Self} (Data const \&d) -\begin{DoxyCompactList}\small\item\em connstructor, 宣告一個實體, 其中該實體的constructor用copy constructor \end{DoxyCompactList}\item -\hyperlink{classmeow_1_1Self_af98a65e83bb96c0860d91a5013b269ef}{Self} (\hyperlink{classmeow_1_1Self}{Self} const \&b, \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8}{Duplicate\-Type} d=\hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730}{C\-O\-P\-Y\-\_\-\-F\-R\-O\-M}) -\begin{DoxyCompactList}\small\item\em constructor, 使用給定的\-Self當作init value, 並且可以指定要用 reference還是copy \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em connstructor with a real entity with it using its copy constructor \end{DoxyCompactList}\item +\hyperlink{classmeow_1_1Self_afee797a10c73a1c8e02c8e6315a2930b}{Self} (\hyperlink{classmeow_1_1Self}{Self} const \&b, \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8}{Duplicate\-Type} d) +\begin{DoxyCompactList}\small\item\em constructor with given another \hyperlink{classmeow_1_1Self}{Self} \end{DoxyCompactList}\item \hyperlink{classmeow_1_1Self_a000ede7e217c31401cc0a4b1c6749ee5}{Self} (\hyperlink{classmeow_1_1Self}{Self} const \&b) \begin{DoxyCompactList}\small\item\em Disallow copy constructor. \end{DoxyCompactList}\item \hyperlink{classmeow_1_1Self_ada16564a03665b10810a6342d61044bc}{$\sim$\-Self} () -\begin{DoxyCompactList}\small\item\em 解構子 \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item Data const $\ast$ \hyperlink{classmeow_1_1Self_a6063551c3e6ac647500e938ade8fbc99}{operator-\/$>$} () const -\begin{DoxyCompactList}\small\item\em 回傳指向 Data const 的指標 \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Return the constant pointer to the data. \end{DoxyCompactList}\item Data $\ast$ \hyperlink{classmeow_1_1Self_ace312355261c68ac7531767939f5c4c2}{operator-\/$>$} () -\begin{DoxyCompactList}\small\item\em 回傳指向 Data 的指標, 如有需要, 這邊會做資料的duplicate \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Return the non-\/constant pointer to the data (C\-O\-R's clone might occure here. \end{DoxyCompactList}\item \hyperlink{classmeow_1_1Self}{Self} \& \hyperlink{classmeow_1_1Self_a5962339e9ee49312ab770f1119256ca6}{operator()} () const -\begin{DoxyCompactList}\small\item\em 回傳非const型態的自己 \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Return the non-\/constant reference of {\ttfamily $\ast$this}. \end{DoxyCompactList}\item \hyperlink{classmeow_1_1Self}{Self} const \& \hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copy\-From} (\hyperlink{classmeow_1_1Self}{Self} const \&s) -\begin{DoxyCompactList}\small\item\em 將給定的 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} 的資料複製到自己這裡 \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Copy the gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} to myself. \end{DoxyCompactList}\item \hyperlink{classmeow_1_1Self}{Self} const \& \hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{reference\-From} (\hyperlink{classmeow_1_1Self}{Self} const \&s) -\begin{DoxyCompactList}\small\item\em 將自己reference 到給定的 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Reference myself from given {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object. \end{DoxyCompactList}\item \hyperlink{classmeow_1_1Self}{Self} const \& \hyperlink{classmeow_1_1Self_ae4256bfc598bb0db76141ffce506806e}{duplicate\-From} (\hyperlink{classmeow_1_1Self}{Self} const \&s, \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8}{Duplicate\-Type} t) -\begin{DoxyCompactList}\small\item\em 依據給定\-Duplicate\-Type選擇要呼叫copy\-From還是reference\-From \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em call {\ttfamily \hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copy\-From()}} or {\ttfamily \hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{reference\-From()}} depend on your instruction \end{DoxyCompactList}\item bool \hyperlink{classmeow_1_1Self_ab3671e44693b79e2f987f59652d46ca9}{same} (\hyperlink{classmeow_1_1Self}{Self} const \&s) const -\begin{DoxyCompactList}\small\item\em 比對兩個 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} 是否指向同一個reference \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Compare tht if the gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object is reference from the same object of me. \end{DoxyCompactList}\item bool \hyperlink{classmeow_1_1Self_a91098e2218c358470e81d64f35d6491d}{equal} (\hyperlink{classmeow_1_1Self}{Self} const \&s) const -\begin{DoxyCompactList}\small\item\em 比對兩個 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} 的內容是否一樣 \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Compare that the data are the same. \end{DoxyCompactList}\item bool \hyperlink{classmeow_1_1Self_a10f22a83c3afcf65f8f9680f2a2f945c}{reference\-Less} (\hyperlink{classmeow_1_1Self}{Self} const \&s) const -\begin{DoxyCompactList}\small\item\em 以reference作為判斷依據的小於判斷 \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Order compare by reference pointer. \end{DoxyCompactList}\item void \hyperlink{classmeow_1_1Self_af3277e1109c59e5f81549889b344a675}{operator=} (\hyperlink{classmeow_1_1Self}{Self} const \&a) -\begin{DoxyCompactList}\small\item\em 將 {\ttfamily operator=} 給disable掉 \end{DoxyCompactList}\end{DoxyCompactItemize} +\begin{DoxyCompactList}\small\item\em Disallow default {\ttfamily 'operator='}. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection{Detailed Description} \subsubsection*{template$<$class Data$>$class meow\-::\-Self$<$ Data $>$} -具有copy on write, 且擁有比\-C++更靈活的reference機制 +A little class use for packing the data part of another class. With this technique, it can achieve Copy-\/\-On-\/\-Write(C\-O\-R) mechanism at background and have a reference mechanism which much more flexible then the one C++ has. -使用上就是把所有成員變數包到一個class/structure裡, 送給\-Self \par - 例如以下 +Sample code\-: \begin{DoxyCode} \textcolor{keyword}{class }A \{ \textcolor{keyword}{private}: \textcolor{keyword}{struct }Myself \{ \textcolor{keywordtype}{int} data; - Myself() \{ \textcolor{comment}{// 必要} + + Myself() \{ \textcolor{comment}{// Necessary} data = 0; \} - Myself(Myself \textcolor{keyword}{const}& b): data(b.data) \{ \textcolor{comment}{// 必要, copy constructor} + + Myself(Myself \textcolor{keyword}{const}& b): data(b.data) \{ \textcolor{comment}{// Necessary, copy constructor} \} + ~Myself() \{ \} - \textcolor{keywordtype}{bool} operator==(Myself \textcolor{keyword}{const}& b)\textcolor{keyword}{ const }\{ \textcolor{comment}{// 不一定需要(有用到equal()才要)} + + \textcolor{keywordtype}{bool} operator==(Myself \textcolor{keyword}{const}& b)\textcolor{keyword}{ const }\{ \textcolor{comment}{// Optional (this method will} + \textcolor{comment}{// be called only if you use} + \textcolor{comment}{// Self::equal() method)} \textcolor{keywordflow}{return} (data == b.data); \} \}; - Self<Myself> \textcolor{keyword}{const} \textcolor{keyword}{self}; + Self<Myself> \textcolor{keyword}{const} \textcolor{keyword}{self}; \textcolor{comment}{// Here we use 'constant' data type in } + \textcolor{comment}{// order to have a coutious coding style} + \textcolor{comment}{// and allow the COR mechanism to clone} + \textcolor{comment}{// data only when we really want to} + \textcolor{comment}{// modify them.} \textcolor{keyword}{public}: - A(): self() \{ \} \textcolor{comment}{// 預設呼叫Myself()} - A(A \textcolor{keyword}{const}& a): self(a.self, \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730}{COPY\_FROM}) \{ \} \textcolor{comment}{// 用Myself(b)做到copyFrom} + A(): self() \{ \} \textcolor{comment}{// Default constructor} + + A(A \textcolor{keyword}{const}& a): self(a.self, \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730}{COPY\_FROM}) \{ \} \textcolor{comment}{// Copy constructor. You must} + \textcolor{comment}{// tell me which way of} + \textcolor{comment}{// duplicating should I use.} + \textcolor{comment}{// It strongly recommended you} + \textcolor{comment}{// use COYP\_FROM for keeping the} + \textcolor{comment}{// C++'s original behavior.} ~A() \{ \} - \textcolor{keywordtype}{void} setMemeber(\textcolor{keywordtype}{int} k) \{ - \textcolor{keyword}{self}()->data = k; \textcolor{comment}{// self()->?? 可以有write權限} - \} + \textcolor{keywordtype}{int} getMemember(\textcolor{keywordtype}{int} wh)\textcolor{keyword}{ const }\{ - \textcolor{keywordflow}{return} \textcolor{keyword}{self}->data; \textcolor{comment}{// self->?? 只有const} + \textcolor{keywordflow}{return} \textcolor{keyword}{self}->data; \textcolor{comment}{// Use 'operator->()' to get the pointer of the data} + \textcolor{comment}{// The pointer is constant or not will depend on} + \textcolor{comment}{// whether the left side variable of '->' is} + \textcolor{comment}{// constant or not.} + \textcolor{comment}{// If we just want to read the data, use} + \textcolor{comment}{// 'self' instead of 'self()'} + \} + \textcolor{keywordtype}{void} setMemeber(\textcolor{keywordtype}{int} k) \{ + \textcolor{keyword}{self}()->data = k; \textcolor{comment}{// As a result of 'self()' returning a non-constant} + \textcolor{comment}{// reference of itself, here we get the permission} + \textcolor{comment}{// for modiying data.} + \textcolor{comment}{// So now we can observe that if you type} + \textcolor{comment}{// 'Self<Myself> self' instead of the one above,} + \textcolor{comment}{// 'self' and 'self()' will become the same one and} + \textcolor{comment}{// both of them allow you using '->' for getting} + \textcolor{comment}{// writing permission. At the same time, the COR} + \textcolor{comment}{// machanism will become useless because everytime} + \textcolor{comment}{// you want to access the date, Self will copy the} + \textcolor{comment}{// data to prevent you to modify it no matter that} + \textcolor{comment}{// you might just want to read it.} \} + A \hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{referenceFrom}(A \textcolor{keyword}{const}& a) \{ \textcolor{keyword}{self}.\hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{referenceFrom}(a.self); \} + A \hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copyFrom}(A \textcolor{keyword}{const}& a) \{ \textcolor{keyword}{self}.\hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copyFrom}(a.self); \} - A& \hyperlink{classmeow_1_1Self_af3277e1109c59e5f81549889b344a675}{operator=}(A \textcolor{keyword}{const}& b) \{ \textcolor{comment}{// for std::swap} + + A& \hyperlink{classmeow_1_1Self_af3277e1109c59e5f81549889b344a675}{operator=}(A \textcolor{keyword}{const}& b) \{ \textcolor{comment}{// If you really like to use operator=, it} + \textcolor{comment}{// strongly recommended you use 'copyFrom()' for} + \textcolor{comment}{// keeping C++'s original behavior.} \hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copyFrom}(b); \} \}; \end{DoxyCode} - + Note that '\hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{reference\-From()}' will cause the two object become the same one, Which means that if you do something like '{\ttfamily a.\-reference\-From(b)}; {\ttfamily a.\-copy\-From(c)}; ', the result is that the value of {\ttfamily a},b,c will all the same one. \begin{DoxyAuthor}{Author} cathook \end{DoxyAuthor} \begin{DoxyWarning}{Warning} -{\ttfamily \hyperlink{classmeow_1_1Self}{Self}} 這個class會把{\ttfamily operator=} 給disable掉, 所以使用它當 kernel的class預設的 {\ttfamily operator=} 都會無法使用 +This class disabled the method {\ttfamily operator=} and copy constructor in order to prevent upexplicit default behavior, so if you want to have one of them (or both), you must implement yourself \end{DoxyWarning} +Definition at line 104 of file Self.\-h. + + + \subsection{Member Enumeration Documentation} \hypertarget{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8}{\index{meow\-::\-Self@{meow\-::\-Self}!Duplicate\-Type@{Duplicate\-Type}} \index{Duplicate\-Type@{Duplicate\-Type}!meow::Self@{meow\-::\-Self}} \subsubsection[{Duplicate\-Type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ enum {\bf meow\-::\-Self\-::\-Duplicate\-Type}}}\label{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8} -複製資料的方法 +Kind of ways of duplicating. \begin{Desc} \item[Enumerator]\par \begin{description} \index{C\-O\-P\-Y\-\_\-\-F\-R\-O\-M@{C\-O\-P\-Y\-\_\-\-F\-R\-O\-M}!meow\-::\-Self@{meow\-::\-Self}}\index{meow\-::\-Self@{meow\-::\-Self}!C\-O\-P\-Y\-\_\-\-F\-R\-O\-M@{C\-O\-P\-Y\-\_\-\-F\-R\-O\-M}}\item[{\em \hypertarget{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730}{C\-O\-P\-Y\-\_\-\-F\-R\-O\-M}\label{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730} -}]跟一般的複製一樣 \index{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M@{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M}!meow\-::\-Self@{meow\-::\-Self}}\index{meow\-::\-Self@{meow\-::\-Self}!R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M@{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M}}\item[{\em +}]Normal copy operation. \index{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M@{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M}!meow\-::\-Self@{meow\-::\-Self}}\index{meow\-::\-Self@{meow\-::\-Self}!R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M@{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M}}\item[{\em \hypertarget{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8a40c8a3eba568e04a5ce09ee0fa881822}{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M}\label{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8a40c8a3eba568e04a5ce09ee0fa881822} -}]參照, 執行完兩個\-Self會完全等效 \end{description} +}]By reference, much like pointer's copy operation. \end{description} \end{Desc} +Definition at line 109 of file Self.\-h. + + + \subsection{Constructor \& Destructor Documentation} \hypertarget{classmeow_1_1Self_a6b39fcc4b184809f9aeaeb1c9a0bac2d}{\index{meow\-::\-Self@{meow\-::\-Self}!Self@{Self}} \index{Self@{Self}!meow::Self@{meow\-::\-Self}} @@ -137,7 +182,11 @@ cathook )\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a6b39fcc4b184809f9aeaeb1c9a0bac2d} -constructor, 並宣告一個實體 +constructor with a real entity + + + +Definition at line 173 of file Self.\-h. \hypertarget{classmeow_1_1Self_af3220c1e1d7966c6dbaf4ec62f8cbc2f}{\index{meow\-::\-Self@{meow\-::\-Self}!Self@{Self}} \index{Self@{Self}!meow::Self@{meow\-::\-Self}} @@ -148,32 +197,40 @@ constructor, 並宣告一個實體 )\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_af3220c1e1d7966c6dbaf4ec62f8cbc2f} -connstructor, 宣告一個實體, 其中該實體的constructor用copy constructor +connstructor with a real entity with it using its copy constructor \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em d} & Inital data \\ \hline \end{DoxyParams} -\hypertarget{classmeow_1_1Self_af98a65e83bb96c0860d91a5013b269ef}{\index{meow\-::\-Self@{meow\-::\-Self}!Self@{Self}} + + +Definition at line 181 of file Self.\-h. + +\hypertarget{classmeow_1_1Self_afee797a10c73a1c8e02c8e6315a2930b}{\index{meow\-::\-Self@{meow\-::\-Self}!Self@{Self}} \index{Self@{Self}!meow::Self@{meow\-::\-Self}} \subsubsection[{Self}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf meow\-::\-Self}$<$ Data $>$\-::{\bf Self} ( \begin{DoxyParamCaption} \item[{{\bf Self}$<$ Data $>$ const \&}]{b, } -\item[{{\bf Duplicate\-Type}}]{d = {\ttfamily {\bf C\-O\-P\-Y\-\_\-\-F\-R\-O\-M}}} +\item[{{\bf Duplicate\-Type}}]{d} \end{DoxyParamCaption} -)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_af98a65e83bb96c0860d91a5013b269ef} +)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_afee797a10c73a1c8e02c8e6315a2930b} -constructor, 使用給定的\-Self當作init value, 並且可以指定要用 reference還是copy +constructor with given another \hyperlink{classmeow_1_1Self}{Self} \begin{DoxyParams}[1]{Parameters} -\mbox{\tt in} & {\em b} & 給定的\-Self \\ +\mbox{\tt in} & {\em b} & Another \hyperlink{classmeow_1_1Self}{Self} object. \\ \hline -\mbox{\tt in} & {\em d} & 指定要用copy還是reference \\ +\mbox{\tt in} & {\em d} & To indicate type of way of duplicating \\ \hline \end{DoxyParams} + + +Definition at line 190 of file Self.\-h. + \hypertarget{classmeow_1_1Self_a000ede7e217c31401cc0a4b1c6749ee5}{\index{meow\-::\-Self@{meow\-::\-Self}!Self@{Self}} \index{Self@{Self}!meow::Self@{meow\-::\-Self}} \subsubsection[{Self}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf meow\-::\-Self}$<$ Data $>$\-::{\bf Self} ( @@ -194,7 +251,11 @@ Disallow copy constructor. )\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_ada16564a03665b10810a6342d61044bc} -解構子 +destructor + + + +Definition at line 206 of file Self.\-h. @@ -208,19 +269,20 @@ Disallow copy constructor. )\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2} -將給定的 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} 的資料複製到自己這裡 +Copy the gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} to myself. \begin{DoxyParams}[1]{Parameters} -\mbox{\tt in} & {\em s} & 給定的{\ttfamily \hyperlink{classmeow_1_1Self}{Self}} \\ +\mbox{\tt in} & {\em s} & gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -$\ast$this +$\ast$this \end{DoxyReturn} -\begin{DoxyNote}{Note} -與reference的差別是, copy之後若該給定的 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} 有資料修改, this 這邊 {\bfseries 不會} 被改到 -\end{DoxyNote} + + +Definition at line 233 of file Self.\-h. + \hypertarget{classmeow_1_1Self_ae4256bfc598bb0db76141ffce506806e}{\index{meow\-::\-Self@{meow\-::\-Self}!duplicate\-From@{duplicate\-From}} \index{duplicate\-From@{duplicate\-From}!meow::Self@{meow\-::\-Self}} \subsubsection[{duplicate\-From}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf Self} const\& {\bf meow\-::\-Self}$<$ Data $>$\-::duplicate\-From ( @@ -231,18 +293,22 @@ $\ast$this )\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_ae4256bfc598bb0db76141ffce506806e} -依據給定\-Duplicate\-Type選擇要呼叫copy\-From還是reference\-From +call {\ttfamily \hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copy\-From()}} or {\ttfamily \hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{reference\-From()}} depend on your instruction \begin{DoxyParams}[1]{Parameters} -\mbox{\tt in} & {\em s} & 給定的 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} \\ +\mbox{\tt in} & {\em s} & gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object \\ \hline -\mbox{\tt in} & {\em t} & 給定的 {\ttfamily Duplicate\-Type} \\ +\mbox{\tt in} & {\em t} & instruction \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} $\ast$this \end{DoxyReturn} + + +Definition at line 262 of file Self.\-h. + \hypertarget{classmeow_1_1Self_a91098e2218c358470e81d64f35d6491d}{\index{meow\-::\-Self@{meow\-::\-Self}!equal@{equal}} \index{equal@{equal}!meow::Self@{meow\-::\-Self}} \subsubsection[{equal}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ bool {\bf meow\-::\-Self}$<$ Data $>$\-::equal ( @@ -252,19 +318,23 @@ $\ast$this ) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a91098e2218c358470e81d64f35d6491d} -比對兩個 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} 的內容是否一樣 +Compare that the data are the same. \begin{DoxyParams}[1]{Parameters} -\mbox{\tt in} & {\em s} & 另一個 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} \\ +\mbox{\tt in} & {\em s} & another {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -{\ttfamily true/false} 表示兩個內容是否一樣 +{\ttfamily true} if the data are same. \end{DoxyReturn} \begin{DoxyNote}{Note} -需要用到 Data的equal() +This will need the method 'Data\-::equal()' \end{DoxyNote} + + +Definition at line 289 of file Self.\-h. + \hypertarget{classmeow_1_1Self_a5962339e9ee49312ab770f1119256ca6}{\index{meow\-::\-Self@{meow\-::\-Self}!operator()@{operator()}} \index{operator()@{operator()}!meow::Self@{meow\-::\-Self}} \subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf Self}\& {\bf meow\-::\-Self}$<$ Data $>$\-::operator() ( @@ -274,7 +344,11 @@ $\ast$this ) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a5962339e9ee49312ab770f1119256ca6} -回傳非const型態的自己 +Return the non-\/constant reference of {\ttfamily $\ast$this}. + + + +Definition at line 223 of file Self.\-h. \hypertarget{classmeow_1_1Self_a6063551c3e6ac647500e938ade8fbc99}{\index{meow\-::\-Self@{meow\-::\-Self}!operator-\/$>$@{operator-\/$>$}} \index{operator-\/$>$@{operator-\/$>$}!meow::Self@{meow\-::\-Self}} @@ -285,7 +359,11 @@ $\ast$this ) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a6063551c3e6ac647500e938ade8fbc99} -回傳指向 Data const 的指標 +Return the constant pointer to the data. + + + +Definition at line 211 of file Self.\-h. \hypertarget{classmeow_1_1Self_ace312355261c68ac7531767939f5c4c2}{\index{meow\-::\-Self@{meow\-::\-Self}!operator-\/$>$@{operator-\/$>$}} \index{operator-\/$>$@{operator-\/$>$}!meow::Self@{meow\-::\-Self}} @@ -296,7 +374,11 @@ $\ast$this )\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_ace312355261c68ac7531767939f5c4c2} -回傳指向 Data 的指標, 如有需要, 這邊會做資料的duplicate +Return the non-\/constant pointer to the data (C\-O\-R's clone might occure here. + + + +Definition at line 218 of file Self.\-h. \hypertarget{classmeow_1_1Self_af3277e1109c59e5f81549889b344a675}{\index{meow\-::\-Self@{meow\-::\-Self}!operator=@{operator=}} \index{operator=@{operator=}!meow::Self@{meow\-::\-Self}} @@ -307,7 +389,7 @@ $\ast$this )}}\label{classmeow_1_1Self_af3277e1109c59e5f81549889b344a675} -將 {\ttfamily operator=} 給disable掉 +Disallow default {\ttfamily 'operator='}. \hypertarget{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{\index{meow\-::\-Self@{meow\-::\-Self}!reference\-From@{reference\-From}} \index{reference\-From@{reference\-From}!meow::Self@{meow\-::\-Self}} @@ -318,19 +400,20 @@ $\ast$this )\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d} -將自己reference 到給定的 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} +Reference myself from given {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object. \begin{DoxyParams}[1]{Parameters} -\mbox{\tt in} & {\em s} & 給定的{\ttfamily \hyperlink{classmeow_1_1Self}{Self}} \\ +\mbox{\tt in} & {\em s} & given {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -$\ast$this +$\ast$this \end{DoxyReturn} -\begin{DoxyNote}{Note} -把reference想像成指標會比較容易思考, 譬如 {\ttfamily a.\-reference\-From(b)} {\ttfamily b.\-reference\-From(c)} 相當於 {\bfseries a指向b原本指的記憶體位置}, {\bfseries b指向c原本指的記憶體位置} , 之後更動c時, 只有b會被牽連 -\end{DoxyNote} + + +Definition at line 246 of file Self.\-h. + \hypertarget{classmeow_1_1Self_a10f22a83c3afcf65f8f9680f2a2f945c}{\index{meow\-::\-Self@{meow\-::\-Self}!reference\-Less@{reference\-Less}} \index{reference\-Less@{reference\-Less}!meow::Self@{meow\-::\-Self}} \subsubsection[{reference\-Less}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ bool {\bf meow\-::\-Self}$<$ Data $>$\-::reference\-Less ( @@ -340,16 +423,17 @@ $\ast$this ) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a10f22a83c3afcf65f8f9680f2a2f945c} -以reference作為判斷依據的小於判斷 +Order compare by reference pointer. \begin{DoxyParams}[1]{Parameters} -\mbox{\tt in} & {\em s} & 另一個 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} \\ +\mbox{\tt in} & {\em s} & another {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object \\ \hline \end{DoxyParams} -\begin{DoxyReturn}{Returns} -{\ttfamily true/false} 表示自己是否小於另一個 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} -\end{DoxyReturn} + + +Definition at line 299 of file Self.\-h. + \hypertarget{classmeow_1_1Self_ab3671e44693b79e2f987f59652d46ca9}{\index{meow\-::\-Self@{meow\-::\-Self}!same@{same}} \index{same@{same}!meow::Self@{meow\-::\-Self}} \subsubsection[{same}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ bool {\bf meow\-::\-Self}$<$ Data $>$\-::same ( @@ -359,18 +443,22 @@ $\ast$this ) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_ab3671e44693b79e2f987f59652d46ca9} -比對兩個 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} 是否指向同一個reference +Compare tht if the gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object is reference from the same object of me. \begin{DoxyParams}[1]{Parameters} -\mbox{\tt in} & {\em s} & 另一個 {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} \\ +\mbox{\tt in} & {\em s} & gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -{\ttfamily true/false} 表示是否為同一個reference +{\ttfamily true} if we are referenced to the same object. \end{DoxyReturn} +Definition at line 277 of file Self.\-h. + + + The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize} \item meowpp/\hyperlink{Self_8h}{Self.\-h}\end{DoxyCompactItemize} |