<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      書山有徑勤為路>>>>>>>>

      <<<<<<<<學海無涯苦作舟!

      C++ 運算符重載

      明白了函數重載后,運算符的重載就是小意思了。

      但是運算符的重載在實現起來有一定的規則。

      First:雙目運算符

        運算符重載為成員函數形式。

        格式:類名 operator運算符(const 類名 &對象名) const{}

        具體的還是看代碼吧。

        

      View Code
      #include "iostream"
      #include "cstring"
      #include "string"
      #include "cstdio"
      using namespace std;
      class Complex{
      public:
          Complex(double r=0.0, double i=0.0):real(r),imag(i){}
      
          Complex operator+(const Complex &c2) const{        //重載"+"
              return Complex(real+c2.real, imag+c2.imag);
          }
      
          Complex operator-(const Complex &c2) const{        //重載"-"
              return Complex(real-c2.real, imag-c2.imag);
          }
      
          void display(){
              cout<<"("<<real<<","<<imag<<")"<<endl;
          }
      private:
          double real;
          double imag;
      };
      int main(){
          Complex c1(5, 4), c2(2, 10), c3;
          cout<<"c1="; c1.display();
          cout<<"c2="; c2.display();
          c3 = c1+c2;
          cout<<"c3=c1+c2="; c3.display();
          c3 = c1-c2;
          cout<<"c3=c1-c2="; c3.display();
      }

       

      Second:單目運算符

        運算符重載為成員函數形式。

        格式:類名& operator運算符(){} 或者 類名 operator運算符(int){}

        具體的還是來看代碼。

      View Code
      #include "iostream"
      #include "cstring"
      #include "string"
      #include "cstdio"
      using namespace std;
      class Clock{
      public:
          Clock(int hour=0, int minute=0, int second=0){
              if(hour>=0 && hour<24 && minute>=0 && minute<60 && second>=0 && second<60){
                  this->hour = hour;
                  this->minute = minute;
                  this->second = second;
              }else cout<<"Time Error!"<<endl;
          }
          void showTime() const{
              cout<<hour<<":"<<minute<<":"<<second<<endl;
          }
          Clock& operator++(){       //后置++, 只要是無參的,就是后置的,注意這里有&
              second++;
              if(second>=60){
                  second -= 60;
                  minute++;
                  if(minute>=60){
                      minute -= 60;
                      hour = (hour+1)%24;
                  }
              }
              return *this;
          }
          Clock operator++(int){     //前置++, 只要是有參的,就是前置的,注意這里沒&
              Clock old = *this;
              ++(*this);
              return old;
          }
      private:
          int hour;
          int minute;
          int second;
      };
      int main(){
          Clock myClock(23, 45, 56);
          cout<<"at first:  "; myClock.showTime();
          cout<<"myClock++: "; (myClock++).showTime();
          cout<<"++myClock: "; (++myClock).showTime();
      }

       

      上面所講的都運算符重載為成員函數形式的重載,

      下面來講講運算符重載為非成員函數形式的重載。

       

      其實很簡單,就只要在重載函數前面加上一個friend可以了。

      但是有一點要注意:在重載為成員函數時,省去了一個參數。

      那么在重載為非成員函數時,每一個參數都要傳入了,不可以省。

      還有一點就是要將修飾符const去掉。

      好了,就這三點注意了。

      再來總結一下:

        1.加friend

        2.每個參數都要傳入,不能省

        3.去掉修飾符const

        下面來看一個代碼吧。

      View Code
      #include "iostream"
      #include "cstring"
      #include "string"
      #include "cstdio"
      using namespace std;
      class Complex{
      public:
          Complex(double r=0.0, double i=0.0):real(r),imag(i){}
      
          friend Complex operator+(const Complex &c1, const Complex &c2) {        //重載"+"
              return Complex(c1.real+c2.real, c1.imag+c2.imag);
          }
      
          friend Complex operator-(const Complex &c1,const Complex &c2) {        //重載"-"
              return Complex(c1.real-c2.real, c1.imag-c2.imag);
          }
      
          void display(){
              cout<<"("<<real<<","<<imag<<")"<<endl;
          }
      private:
          double real;
          double imag;
      };
      int main(){
          Complex c1(5, 4), c2(2, 10), c3;
          cout<<"c1="; c1.display();
          cout<<"c2="; c2.display();
          c3 = c1+c2;
          cout<<"c3=c1+c2="; c3.display();
          c3 = c1-c2;
          cout<<"c3=c1-c2="; c3.display();
      }

       

      posted on 2012-04-21 19:07  More study needed.  閱讀(211)  評論(0)    收藏  舉報

      導航

      書山有徑勤為路>>>>>>>>

      <<<<<<<<學海無涯苦作舟!

      主站蜘蛛池模板: 日韩高清亚洲日韩精品一区二区| 成年女人片免费视频播放A| 男人扒开添女人下部免费视频| 一级女性全黄久久片免费| 九九热免费精品视频在线| 少妇高潮喷水正在播放| 亚洲伊人精品久视频国产| 日韩亚洲精品中文字幕| 这里只有精品免费视频| 国产老妇伦国产熟女老妇高清| 亚洲日本中文字幕天天更新| 日韩精品一区二区三区影院| 极品尤物被啪到呻吟喷水 | 乐清市| 日本一区二区三区东京热| 精品少妇av蜜臀av| 天堂俺去俺来也www色官网| 一区二区三区久久精品国产| 中文字幕有码日韩精品| 在线精品视频一区二区三四| 亚洲精品成人片在线观看精品字幕| 国产成人av电影在线观看第一页| 国产suv精品一区二区| 亚洲综合伊人久久大杳蕉| 少妇人妻偷人偷人精品| 国产毛a片啊久久久久久保和丸| 亚洲精品一区三区三区在| 免费无码一区无码东京热| 国产精品高清一区二区三区不卡 | 99国产午夜福利在线观看| 亚洲 制服 丝袜 无码| 日韩中文字幕精品人妻| 亚洲一区二区国产av| 国产亚洲精品成人aa片新蒲金| 南川市| 国产精品v片在线观看不卡| 久久亚洲国产品一区二区| 欧美喷潮最猛视频| 亚洲一区在线成人av| 清河县| 日韩精品中文字幕第二页|