• <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++ 閱讀(239) 評論(0)  編輯 收藏 引用
            国产激情久久久久久熟女老人| 99久久人妻无码精品系列蜜桃| 精品欧美一区二区三区久久久| 精品久久久久久99人妻| 伊人久久大香线蕉综合5g| 国产婷婷成人久久Av免费高清| 国产一区二区精品久久凹凸| 国产精品久久久久久久人人看 | 国产精品伊人久久伊人电影| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 色播久久人人爽人人爽人人片aV | 久久久久国产| 久久不见久久见免费视频7| 国产福利电影一区二区三区,免费久久久久久久精 | 久久久久国产精品嫩草影院| 伊人久久久AV老熟妇色| 久久久久国产精品三级网| 久久偷看各类wc女厕嘘嘘| 亚洲欧美成人久久综合中文网 | 无码人妻久久一区二区三区免费| 久久最近最新中文字幕大全 | 亚洲国产精品综合久久一线| 国产精品久久亚洲不卡动漫| 伊人久久无码中文字幕| 亚州日韩精品专区久久久| 777久久精品一区二区三区无码| 欧美亚洲色综久久精品国产| 久久久黄色大片| 亚洲精品久久久www| 色婷婷噜噜久久国产精品12p | 中文字幕无码久久人妻| 国产精品美女久久久久AV福利| 久久91精品国产91久久小草| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 99国产精品久久久久久久成人热| 日韩人妻无码精品久久免费一| 亚洲欧美成人综合久久久| 色欲久久久天天天综合网| 久久人人爽人人爽人人片av高请| 国产人久久人人人人爽| 久久久国产精品网站|