• <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++ 閱讀(242) 評論(0)  編輯 收藏 引用
            色99久久久久高潮综合影院| 91久久九九无码成人网站| 奇米综合四色77777久久| 99久久精品影院老鸭窝| 久久精品国产清自在天天线| 亚洲女久久久噜噜噜熟女| 国产高潮国产高潮久久久91| 午夜欧美精品久久久久久久| 国产精品天天影视久久综合网| 大蕉久久伊人中文字幕| 中文字幕久久波多野结衣av| 久久免费视频一区| 国产亚洲成人久久| 国产99精品久久| 色综合久久88色综合天天 | 性欧美大战久久久久久久久| 国内精品久久久久国产盗摄| 无码国内精品久久人妻蜜桃 | 久久影院午夜理论片无码| 国产亚洲精久久久久久无码77777| 国产精品美女久久久久久2018| 久久SE精品一区二区| 亚洲欧美成人久久综合中文网 | 精品久久久久久久久久中文字幕 | 亚洲国产日韩欧美久久| 69久久夜色精品国产69| 无码人妻精品一区二区三区久久久| 久久久精品国产Sm最大网站| 婷婷综合久久狠狠色99h| 天天爽天天爽天天片a久久网| 亚洲精品乱码久久久久久| 久久人人添人人爽添人人片牛牛| 久久精品国产99国产精品| 狠狠色噜噜狠狠狠狠狠色综合久久 | 99久久精品国产一区二区三区| 久久久久久亚洲AV无码专区| 99久久精品国产高清一区二区| 精产国品久久一二三产区区别| 一本综合久久国产二区| 中文字幕精品久久| 久久久无码精品亚洲日韩蜜臀浪潮 |