亚洲色一色噜一噜噜噜_在线国产精品一区二区_91国自产拍 精品_国产伦三级一区二区

  • <object id="nlumt"><tt id="nlumt"><pre id="nlumt"></pre></tt></object>
    <legend id="nlumt"><mark id="nlumt"></mark></legend>
    <pre id="nlumt"><tt id="nlumt"><rt id="nlumt"></rt></tt></pre>

    <bdo id="nlumt"><delect id="nlumt"></delect></bdo>

      汶上信息港

      標(biāo)題: 設(shè)計(jì)中的幾個(gè)問題 [打印本頁]

      作者: hbhdgpyz    時(shí)間: 2008-9-29 20:17
      標(biāo)題: 設(shè)計(jì)中的幾個(gè)問題
      <P>C++編譯器會(huì)使原來編輯的一個(gè)空類變成一個(gè)非空的類,因?yàn)樗鼤?huì)<FONT color=#ff0000>自動(dòng)增加</FONT>并調(diào)用以下一些函數(shù):一個(gè)<FONT color=#0000ff>復(fù)制構(gòu)造函數(shù)</FONT>、一個(gè)<FONT color=#0000ff>賦值算法符</FONT>及一對(duì)<FONT color=#0000ff>運(yùn)算符地址</FONT>,如果沒有說明構(gòu)造函數(shù)的話,它也會(huì)編制一個(gè)<FONT color=#0000ff>缺省的構(gòu)造函數(shù)</FONT>。這些函數(shù)都是公有函數(shù)。如果類是從其它類<FONT color=#ff0000>派生</FONT>的,而且這個(gè)其他類又有一個(gè)析構(gòu)函數(shù),則C++也會(huì)為這個(gè)類增加<FONT color=#0000ff>一個(gè)析構(gòu)函數(shù)</FONT>。</P>- o1 |# [! F' r1 b% ~
      <P>組織類的典型方法:</P>4 u5 D5 E# D5 v) j4 v2 b
      <P>(1)正確地定義動(dòng)態(tài)內(nèi)存類的復(fù)制構(gòu)造函數(shù)和賦值運(yùn)算符。</P>" H2 [5 s; H7 k, `
      <P>(2)宜在構(gòu)造函數(shù)中使用初始化而不要使用賦值。</P>0 G* E. X, Y8 s, y/ s/ P9 M0 F
      <P>(3)初始化表的成員應(yīng)按它們?cè)谡f明時(shí)出現(xiàn)的順序列出。</P>% g' ^1 P" j' V
      <P>(4)把基灶的析構(gòu)函數(shù)用作虛函數(shù)</P>7 o# ^6 ?1 h  a8 x& l9 B
      <P>(5)讓"operator="返回對(duì)*this的引用。</P>3 F1 w, t9 q. W4 |; T
      <P>(6)正確對(duì)"operator="中所有數(shù)據(jù)成員的賦值。</P>
      7 D  C* `; W# P4 Z1 ^<P>(7)注意檢查對(duì)"operator="中自身賦值問題。</P>
      2 }5 f9 \7 ]. ^& Y; b0 _<P><FONT color=#ff0000>怎樣建立和刪除對(duì)象</FONT>?可以通過對(duì)象名直接建立對(duì)象,也可以用對(duì)象指針以及new和構(gòu)造函數(shù)一同作用建立動(dòng)態(tài)對(duì)象。直接建立的對(duì)象在生存期結(jié)束時(shí)自動(dòng)消失(對(duì)象的生存期在遇到右括號(hào)時(shí)結(jié)束),而動(dòng)態(tài)對(duì)象的生存期是可控的,要用delete來刪除。</P>
      1 f1 q' w* f: B9 Q& k+ w<P><FONT color=#ff0000>對(duì)象的初始化和賦值有什么不同呢?</FONT> 建立一個(gè)對(duì)象時(shí),對(duì)象的狀態(tài)(即數(shù)據(jù)成員的取值)是不確定的,<FONT color=#ff0000>對(duì)象的<FONT color=#0000ff>初始化</FONT>就是將對(duì)象的狀態(tài)進(jìn)行確定</FONT>,即對(duì)其成員的取值進(jìn)行確定。我們要讓一個(gè)對(duì)象一出現(xiàn)(建立)時(shí)就要有明確的狀態(tài)。這就是對(duì)象的初始化。而<FONT color=#0000ff>賦值</FONT><FONT color=#ff0000>是在對(duì)象被建立以后再對(duì)其數(shù)據(jù)成員進(jìn)行賦值</FONT>,如果對(duì)象沒有被初始化,那么將有一段時(shí)間對(duì)象的狀態(tài)是不確定的.</P>
      / }& `4 v5 |( L2 c& y<P>設(shè)計(jì)類接口的基本原則:(這些東東在實(shí)踐中再深入理解吧)</P>
      " @" ?5 {* O7 I4 W" G<P>(1)盡量使類接口即完整又最緊湊(完整緊湊)</P>
      - ]  Z" P; T6 h6 @) w( T* D<P>(2)注意成員函數(shù)、全局函數(shù)和友元函數(shù)的差別(成全友(有)別)</P>2 A- d; Q' J- X
      <P>(3)在公共接口中不用數(shù)據(jù)成員(公共接口不用數(shù)員)</P>& p' r) ~) I6 `2 o' |3 w& Y5 q# u
      <P>(4)盡量多用const(const多多)</P>$ |- \; J8 _' q3 _0 F
      <P>(5)通過引用而不是值傳遞和返回對(duì)象(通過引用)</P>
      % d. L9 Y* O% d" L6 o<P>(6)在返回對(duì)象時(shí)不要試圖返回引用(返回對(duì)象)</P>4 O# F' |" y- ?" h& l* @# Q! Q7 u
      <P>(7)慎重選擇函數(shù)重載或參數(shù)缺省</P>
      * y8 ^/ x" a- y% T3 \5 T<P>(8)避免對(duì)指針和數(shù)值類型重載</P>. e* T6 h2 ^/ p' S$ J+ Y
      <P>(9)謹(jǐn)防潛在的兩義性問題。</P>& g  ^) |; Q/ k, b2 e
      <P>(10)明確禁用無端隱含生成的成員函數(shù)</P># f; \! ?; N4 A, H! w/ K: O+ d$ H8 ?
      <P>(11)利用結(jié)構(gòu)劃分全局名空間。</P>




      歡迎光臨 汶上信息港 (http://loveproblemguru.com/) Powered by Discuz! X3.5