• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 計算機等級二級C++考試知識點

        時間:2024-10-23 20:44:31 計算機等級 我要投稿
        • 相關推薦

        計算機等級二級C++考試知識點

          c++語言數據類型可以分為兩大類:基本類型和引用類型。下面是小編整理的計算機等級二級C++考試知識點,希望大家認真閱讀!

        計算機等級二級C++考試知識點

          重載運算符

          重載是由P.J.Plauger發現的。

          一。重載運算符的時機

          1。需要在定義的對象間相互賦值時,重載賦值運算符

          2。需要在數字類型增加算術屬性時,重載算術運算符

          3。需要為定義的對象進行邏輯比較時,重載關系運算符

          4。對于container,重載下標運算符[]

          5。需要從I/O流中讀寫對象時,重載 <<和>>運算符。

          6。重載成員指針運算符 - > 以實現smart指針

          7。在少數情況下重載new,delete運算符

          8。不重載其他運算符

          實際上任何用重載運算符完成的工作都可以使用成員函數來實現。

          重載的運算符可以和原來的運算符不一定有必然聯系,例如我重載'+'運算馬夫,可以不做加法運算,而是把字符串連接起來。當然你要是用'+'運算符來做減法運算,也是可以的,不過這不是明智之舉。

          二。重載運算符的規則

          1。重載的運算符不能違反語言的語法規則

          2。如果一個運算符可以放在兩個操作數之間,就可以重載它來滿足類操作的需要,哪怕這種用法原本為編譯器不能接受。

          3。不能創造C++語言中沒有的運算符

          4。下列運算符不能重載

          . 類成員運算符

          .* 成員指針運算符

          :: 域解析運算符

          ?: 條件表達式運算符

          5。重載時不能改變運算符的優先級

          三。運算符重載

          運算符重載是通過對運算符函數的重載來實現的。對于每一個運算符@,在C++中都對應一個運算符函數operator@,其中@為C++各種運算符。

          運算符函數的一般原型為:

          type operator@ (arglist)

          其中type為運算結果的類型,arglist為操作數列表。

          重載雙目運算符

          在(五)我們已經介紹了重載賦值運算符,這里就不重新說明了。

          一。作為類成員函數的重載

          為了能進行類對象和一個整型值的加法運算,需要寫一個類的成員函數來重載雙目加法(+)運算符。該函數在類中的聲明如下:

          Date operator + (int) const;

          函數的聲明指出,返回值是一個Date類對象,函數名是運算符+,只有一個整型參數,而且函數是常量型的。當編譯器發現某個函數以加上前綴operator的真實運算符作為函數名,就會把該函數當作重載運算符函數來處理。如果在表達式中,該運算符的左邊是一個類對象,右邊是一個參數類型的一個對象,那么重載運算符函數就會被調用。調用形式如下:

          Date dt(6,9,2005);

          dt=dt+100;

          也可以顯式的調用重載運算符函數:

          dt.operator + (100);

          下面代碼重載了雙目加法運算符來計算一個整數和一個Date類對象之和,并且返回Date類對象。

          #include iostream.h

          class Date

          {

          int mo,da,yr;

          static int dys[];

          public:

          Date(int m=0,int d=0,int y=0)

          { mo=m; da=d; yr=y;}

          void display() const

          { cout < Date operator + (int) const;

          };

          int Date::dys[]={31,28,31,30,31,30,31,31,30,31,30,31};

          Date Date::operator+(int) const

          {

          Date dt=*this;

          n+=dt.da;

          while(n >=dys[dt.mo-1])

          {

          n-=dys[dt.mo-1];

          if(++dt.da==13)

          {

          dt.mo=1;

          dt,yr++;

          }

          }

          dt.da=n;

          return dt;

          }

          int main()

          {

          Date olddate(1,1,2005);

          Date newdate;

          newdate=olddate+100;

          newdate.display();

          return 0;

          }

        【計算機等級二級C++考試知識點】相關文章:

        2017計算機等級考試二級C++考試試題09-21

        2017計算機等級考試二級c++試題及答案08-19

        2016計算機等級考試二級C++上機模擬試題10-09

        全國計算機二級C++考試知識點09-01

        2016計算機等級考試二級C++上機模擬試題及答案07-14

        計算機等級考試二級Java重要知識點10-17

        計算機二級考試之C++基礎知識點08-05

        計算機二級考試C++試題06-10

        2016年計算機等級考試二級C++筆試真題及答案10-10

        3月計算機等級考試二級C++筆試真題及答案09-19

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲日韩欧美少妇精品 | 亚洲十大网站在线 | 一本久久A精品一合区久久久 | 亚洲va中文字幕欧美不卡 | 亚洲人成电影在线播放 | 亚洲中文字幕aV女同在线 |