• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Pencil.C++

            更新速度可能會晚于http://blog.csdn.net/bilaopao

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              34 隨筆 :: 0 文章 :: 40 評論 :: 0 Trackbacks
            12.運算符重載:  &nbs12.運算符重載:
                  operator 函數用法:(不能有下列字符:'::','.','*','->','? :')p;   
                      1.一般:int class_name::operator <運算符> (形參列表)   (例92)
                      2.增量減量運算符:   (例93,94,95,96)
                           a.將一個增量運算符重載為前置的成員函數:12.運算符重載:  &nbs
                                       int class_name::operator++();
                           b.將一個增量運算符重載為后置的成員函數:
                                       int class name::operator++(int);12.運算符重載:  &nbs
                           c.將一個增量運算符重載為前置的友元函數:
                                       int operator ++(class_name&);         
                           d.將一個增量運算符重載為前置的友元函數:)    
                                       int operator ++(class_name&,int);     
                           e.下標運算符:
                                       int class_name::operator[](形參)  //只能是非靜態成員函數                           operator 函數用法:(不能有下
                           f.函數調用運算符: 
                                       int class_name::operator()(形參表)//只能是非靜態函數,且不可以帶有缺省的參數
                           g.成員選擇運算符:12.運算符重載:  &nbs
                                       class_name $/* class_name::operator->();
                           h.new delete運算符:
                                       void *class_name::operator new(siz_t,<arg_list>);12.運算符重載:  &nbs
                                       void *class_name::operator delete(void *,<size_t>);
                               new delete只能被重載為類的成員函數,不能是友元。而且無論是否使用關鍵字static
                               進行修飾,重載了的new和delete均為類的表態成員函數。p;   
                                   對于typedef unsigned size_t;
                               在頭文件alloc.h,mem.h,stddef.h,stdio.h,stdlib.h均說明;
                           i.友元函數: operator 函數用法:(不能有下
                                   可以是一個類的非靜態函數,也可以是類的友元函數。
                                  {friend complex operator+(complex&,complex&);
                                  }; 12.運算符重載:  &nbs
                             以下五種運算符不說明成友元運算符:
                                  "=","()","[]","->","type"; 
                           j.轉換函數: operator 函數用法:(不能有下
                                     class_name::operator type();  //type 是任何一個合法的C++的類型名(包括基本數據類型和導出數據類型)以及由關鍵字const和volatile引出的表達示。)
                                                                   //不帶任何參數,也無返回值類型,總是返回type的值。只能是類的成員函數,不能說明為友元運算符。
                           k.類的賦值運算與運算符重載:列字符:::,.,*,->,? :
                                     person & person::operator=(person &p)
                                       {dele Name;
                                        Name=new char[strlen(p.Name)+1];12.運算符重載:  &nbs
                                        strcpy(Name,p.Name);
                                        Age=p.Age;
                                        Sex=p.Sex;p;   
                                        return *this;
                                       }
                                    典型例題。當用系統自帶對象賦值的函數,如果對象里有如 *Name 型的,則賦值后會使兩個指針同時指向一個成員元素的地址,當調用析構函數釋放時,會釋放兩次,多釋放一次,而產生錯誤,這個典型例題是用于把一個成員元素復制到另一個對象中,不是單純移動指針,當調用析構函數時,會釋放兩次。12.運算符重載:  &nbs
                           l.重載函數:系統僅對形參加以區別。
            13.虛函數
                 一般情況下,指向一個對象的指針,不允許指向另一個對象,但指向基類對象的指針可以指向它的派生類,并可以訪問派生類中原基類成員。12.運算符重載:  &nbs
                 如果一個函數一旦說明為虛函數,則無論說明它的類被繼承了多少層,在每一層中該函數都保持該virturl特性。且可以在派生類中對該函數省略virtual.
                 虛函數必須是類的一個成員函數,不能是友元,但它可以是另一個類的友元。虛函數不能是一個靜態成員。
                 設定綁定方式,使程序具有靈活性,但執行效率低,占用內存多.     operator 函數用法:(不能有下
            14.抽象類:純虛函數
                  純虛函數的一般形式為:virturl 類型名(參數表)=0;抽象類不能申請對象。
            15.類屬結構:12.運算符重載:  &nbs
                   1.函數模板:template <class 模板形參表>                
                            返回值類型 函數名(模板函數形參表)
                              {)    
                               函數體;
                              }
                         example:p;   
                             template  <class T>
                             void swap(T &.x,T&.y)
                              {T t;列字符:::,.,*,->,? :
                               t=x;x=y;y=t;
                              }
                   2.重載函數模板:調用用次序:12.運算符重載:  &nbs
                        1)尋找一個完全匹配的函數,找到,調用之。
                        2)尋找一個函數模板,將其實例化產生一個匹配的模板函數,找到,調用之。
                        3)尋找重載函數中有無通過類型轉換后產生參數匹配的函數,若有,調用之。p;   
                   3.類模板:template <class 模板形參>
                             class 類模板名
                             {12.運算符重載:  &nbs
                              類體;
                             }
                         example:  tempplate <class T>12.運算符重載:  &nbs
                                   class stack
                                   {private:
                                      T *date; 12.運算符重載:  &nbs
                                      int top;
                                    public:
                                      isempty();12.運算符重載:  &nbs
                                   }
                                   template <class T>
                                   {...}   operator 函數用法:(不能有下
            16.類模板的友元:
                      a.一般的類模板友元函數。
                      b.封閉型的類模板友元函數。當用類型參數將類模板實例化為某個具體的模板類時,該類模板所包含的友元函數也將隨之實例化。列字符:::,.,*,->,? :
                      c.開放型的類模板友元函數。
                   例一百二十一。
            17.C++的I/O流庫 operator 函數用法:(不能有下
                1.  I/O標準流類  
                    -----------------------------------------
                    c++名字  設備  | C中的名字 | 默認的含義)    
                    -----------------------------------------
                    cin      鍵盤  | stdin     | 標準輸入
                    -----------------------------------------12.運算符重載:  &nbs
                    cout     屏幕  | stdout    | 標準輸出
                    -----------------------------------------
                    cerr     屏幕  | stderr    | 標準錯誤)    
                    -----------------------------------------
                    clog     | 打印機 | stdprn    打印機
                    -----------------------------------------p;   
                 2。鍵盤輸入
                    cin>>a>>b>>c;  //Ctrl+z終止
                    cin.get(char &ch)//從輸入流獲取一個字符,不忽略空格Ctrl+z終止)    
                    cout.put(ch)//輸出一個字符       
                EOF//其值為-1,相當于終止符 
                    cin.geline(char *buf,int limit,Deline='\n')//buf為一個指針或數組,limit為字符個數,Deline為讀取字符指定結束符。作用:從鍵盤讀入一串字符。結束用Ctrl+z.列字符:::,.,*,->,? :
                cin.gcount()//返回getline()剛剛讀過的字符個數 
                    cin.read(char *buf,int size)//讀入指定數目的字符
                cout.write(const char *str,int n)//cout.write("string",strlen("string");則輸出全部字符。p;   
                cin.peek()//返回輸入流的下一個字符,但是不提取它。
                long(a)//a可以是指針地址,作用,強制轉換為十進制數。
                (void*)//ex:char str="abcde";cout<<str;將str為首地址字符串的首地址輸出。   列字符:::,.,*,->,? :
            18.輸入符,提取符重載:<<  >>
                 例154 155例題
            posted on 2009-04-24 19:33 Pencil.C++ 閱讀(241) 評論(0)  編輯 收藏 引用
            亚洲精品高清国产一久久| 国产精品热久久毛片| 欧美亚洲国产精品久久久久| 久久免费香蕉视频| 久久精品卫校国产小美女| 色偷偷88888欧美精品久久久| 久久久亚洲裙底偷窥综合 | 久久精品国产精品亚洲毛片| 国产巨作麻豆欧美亚洲综合久久 | 亚洲精品高清一二区久久| 久久久久女人精品毛片| 国产精品久久免费| 亚洲精品成人久久久| 大伊人青草狠狠久久| 久久受www免费人成_看片中文| 久久久久人妻精品一区二区三区| 久久se这里只有精品| 婷婷久久久亚洲欧洲日产国码AV| www亚洲欲色成人久久精品| 久久久久久国产精品美女| 激情五月综合综合久久69| 久久久久亚洲Av无码专| 久久久久久久波多野结衣高潮 | 久久午夜夜伦鲁鲁片免费无码影视| 2021国产精品午夜久久| 色综合久久88色综合天天 | 国产午夜久久影院| 婷婷久久综合九色综合绿巨人| 韩国免费A级毛片久久| 久久国产福利免费| 精品久久久久久无码专区| 久久99精品久久久大学生| 久久亚洲视频| 无码8090精品久久一区 | 国产精品狼人久久久久影院| 亚洲色大成网站www久久九| 少妇被又大又粗又爽毛片久久黑人| 国产国产成人久久精品| 久久综合综合久久狠狠狠97色88| 99久久久久| 91久久精品国产91性色也|