posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          C++ 學(xué)習(xí)筆記 (6)

          Posted on 2007-10-01 01:08 ZelluX 閱讀(391) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): C/C++

          C++ 學(xué)習(xí)筆記(6) 
          1. 類(lèi)聲明中定義的函數(shù)都被自動(dòng)處理為inline函數(shù)。
           
          2. Triangular t5(); 這句話(huà)似乎聲明了一個(gè)類(lèi)的實(shí)例,但事實(shí)上,C++為了保持與C語(yǔ)法的一致,該語(yǔ)句會(huì)被解釋成一個(gè)返回Triangular對(duì)象的函數(shù);正確的聲明應(yīng)該去掉()。
           
          3. 考慮下面一段代碼
          class Matrix {
          public:
              Matrix( int row, int col )  // ...
              ~Matrix()  { delete [] _pmat; }
          private:
              int _row, _col;
              double *_pmat;
          };

           
          {
              Matrix mat(4, 4);
              {
                  Matrix mat2 = mat;
              }
          }
              把mat復(fù)制給mat2后,mat2中的_pmat與mat的_pmat指向同一個(gè)數(shù)組,在mat2所在的域結(jié)束后,mat2被釋放,同時(shí)刪除了_pmat指針指向的內(nèi)容。錯(cuò)誤發(fā)生。
              解決辦法是在Matrix::Matrix( const Matrix &rhs )中詳細(xì)指出深層拷貝的方法,同時(shí)實(shí)現(xiàn)賦值操作符的重載。

          4. mutable 和 const
          const方法無(wú)法修改類(lèi)的成員,mutable成員除外。

          主站蜘蛛池模板: 云南省| 广德县| 蛟河市| 麦盖提县| 昆明市| 花垣县| 项城市| 同仁县| 扶余县| 正阳县| 衡山县| 韩城市| 阆中市| 稻城县| 明水县| 德昌县| 隆昌县| 兴业县| 绥江县| 洪江市| 福清市| 南靖县| 天台县| 玉龙| 陆丰市| 大城县| 伽师县| 新野县| 芦溪县| 精河县| 青州市| 达日县| 华安县| 始兴县| 巴青县| 西城区| 锦州市| 木兰县| 林口县| 沛县| 宜昌市|