• <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)  編輯 收藏 引用
            中文成人久久久久影院免费观看| 久久精品一区二区三区AV| 久久99精品国产| 久久精品中文字幕有码| 国内精品久久久久久久coent| 久久91这里精品国产2020| 美女久久久久久| 国产成年无码久久久久毛片| 日日狠狠久久偷偷色综合免费| 中文字幕久久久久人妻| 精品久久久久久久久中文字幕| 亚洲国产精品无码久久久久久曰 | 久久综合九色综合欧美狠狠| 久久久久久国产精品无码下载| 亚洲国产精品无码久久| 久久精品国产国产精品四凭| 成人久久免费网站| 久久人人超碰精品CAOPOREN| 伊人久久大香线焦AV综合影院 | 久久久精品久久久久特色影视| 亚洲国产精品久久久天堂| 人妻中文久久久久| 亚洲精品高清久久| 成人资源影音先锋久久资源网| 久久经典免费视频| 国产精品日韩欧美久久综合| 97精品依人久久久大香线蕉97| 久久伊人色| 欧美麻豆久久久久久中文| 亚洲一本综合久久| 久久亚洲欧美日本精品| 老色鬼久久亚洲AV综合| 无码伊人66久久大杳蕉网站谷歌| 久久久国产亚洲精品| 一本久久精品一区二区| 久久国产免费| 久久人人超碰精品CAOPOREN| 91久久九九无码成人网站| 久久r热这里有精品视频| 91亚洲国产成人久久精品| 中文字幕亚洲综合久久2|