青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  117 Posts :: 2 Stories :: 61 Comments :: 0 Trackbacks

常用鏈接

留言簿(8)

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 

1、 運算符重載的概念

      運算符重載是C++的重要組成部分,它可以讓程序更加簡單易懂,簡單的運算符可以使復雜函數的理解更直觀。對于普通對象來說可以使用算術運算符讓它們參與計算,C++也允許為類的對象構造運算符來實現單目或雙目運輸,這個特性就叫運算符的重載。其實,任何使用運算符完成的功能,使用普通的函數也能夠完成。運算符的重載主要存在兩種形式,一種是作為類的友元函數進行使用,另一種則是作為類的成員函數進行使用。運算符的重載的形式為:

返回類型 operator 運算符符號(參數說明)
{     //函數體的內部實現

}

2、 運算符的運算規則

      ①運算符重載函數也是函數,重載的運算符不會改變運算符的優先級、結合型和參數的個數。

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

      ③賦值運算符除外,重載運算符可由派生類繼承下去。

      ④重載運算符不能使用默認參數。

      ⑤運算符=()[]->可作為類成員運算符,不能作為友元運算符。

      ⑥運算符“.”、“::”、“?:”不能重載。

      ⑦友元運算符的參數規則與類成員運算符的參數規則不同,一員運算符必須顯示地聲明一個參數,二員運算符必須顯示地聲明兩個參數。類成員運算符重載時,參數中隱含了一個this指針。

3、 實例代碼
      1)下面是重載函數作為友元函數的形式

#include <iostream>
using std::cout;
using std::endl;
/*********************************************************/
/* 聲明復數類
/********************************************************
*/

class Complex
{
public:
    
//Attribute
    int x;
    
int y;
    
//Operator
    void SetX(int a){x=a;}
    
void SetY(int b){y=b;}

    friend Complex 
operator +(Complex &, Complex &);
    friend Complex 
operator -(Complex &, Complex &);
    friend Complex 
operator *(Complex &, Complex &);
    friend Complex 
operator /(Complex &, Complex &);

    friend Complex 
operator ++(Complex &);//前置方式
    friend Complex operator ++(Complex &int);//后置方式
}
;
// "+"重載運算符
Complex operator +(Complex& temp1,Complex& temp2 )
{
    Complex ret;
    ret.x
=temp1.x+temp2.x;
    ret.y
=temp1.y+temp2.y;
    
return ret;
}

// "-"重載運算符
Complex operator -(Complex& temp1,Complex& temp2 )
{
    Complex ret;
    ret.x
=temp1.x-temp2.x;
    ret.y
=temp1.y-temp2.y;
    
return ret;
}

// "*"重載運算符
Complex operator *(Complex& temp1,Complex& temp2 )
{
    Complex ret;
    ret.x
=temp1.x*temp2.x;
    ret.y
=temp1.y*temp2.y;
    
return ret;
}

// "/"重載運算符
Complex operator /(Complex& temp1,Complex& temp2 )
{
    Complex ret;
    ret.x
=temp1.x/temp2.x;
    ret.y
=temp1.y/temp2.y;
    
return ret;
}

// "++"前置運算符
Complex operator ++(Complex& temp1)
{
    temp1.x
=temp1.x+1;
    temp1.y
=temp1.y+1;
    
return temp1;
}

// "++"后置運算符
Complex operator ++(Complex& temp1,int)
{
    temp1.x
=temp1.x++;
    temp1.y
=temp1.y++;
    
return temp1;
}

//主函數()
int main()
{
    Complex Complex1;
    Complex Complex2;
    Complex Ret;

    Complex1.SetX(
30);
    Complex1.SetY(
40);

    Complex2.SetX(
10);
    Complex2.SetY(
20);

    cout
<<"重載加法運算"<<endl;
    Ret
=Complex1+Complex2;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;

    cout
<<"重載減法運算"<<endl;
    Ret
=Complex1-Complex2;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;

    cout
<<"重載乘法運算"<<endl;
    Ret
=Complex1*Complex2;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;

    cout
<<"重載除法運算"<<endl;
    Ret
=Complex1/Complex2;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;

    cout
<<"前置++運算"<<endl;
    Ret
=++Complex1;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;

    cout
<<"后置++運算"<<endl;
    Ret
=Complex1++;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;
    
return 0;
}

      2)下面是重載函數作為成員函數的實例代碼:

#include <iostream>
using std::cout;
using std::endl;
/*********************************************************/
/* 聲明復數類
/********************************************************
*/

class Complex
{
public:
    
//Attribute
    int x;
    
int y;
    
//Operator
    void SetX(int a){x=a;}
    
void SetY(int b){y=b;}
    
//成員函數
    Complex operator +(Complex &);
    Complex 
operator -(Complex &);
    Complex 
operator *(Complex &);
    Complex 
operator /(Complex &);
    Complex
& operator ++();//前置方式
    Complex& operator ++(int);//后置方式
}
;
// "+"重載運算符
Complex Complex::operator +(Complex& temp1)
{
    Complex ret;
    ret.x
=x+temp1.x;
    ret.y
=y+temp1.y;
    
return ret;
}

// "-"重載運算符
Complex Complex::operator -(Complex& temp1)
{
    Complex ret;
    ret.x
=x-temp1.x;
    ret.y
=y-temp1.y;
    
return ret;
}

// "*"重載運算符
Complex Complex::operator *(Complex& temp1)
{
    Complex ret;
    ret.x
=x*temp1.x;
    ret.y
=y*temp1.y;
    
return ret;
}

// "/"重載運算符
Complex Complex::operator /(Complex& temp1)
{
    Complex ret;
    ret.x
=x/temp1.x;
    ret.y
=y/temp1.y;
    
return ret;
}

// "++"前置運算符
Complex& Complex::operator ++()
{
    x
=x+1;
    y
=y+1;
    
return *this;
}

// "++"后置運算符
Complex& Complex::operator ++(int)
{
    x
=x++;
    y
=y++;
    
return *this;
}

//主函數()
int main()
{
    Complex Complex1;
    Complex Complex2;
    Complex Ret;

    Complex1.SetX(
30);
    Complex1.SetY(
40);

    Complex2.SetX(
10);
    Complex2.SetY(
20);

    cout
<<"重載加法運算"<<endl;
    Ret
=Complex1+Complex2;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;

    cout
<<"重載減法運算"<<endl;
    Ret
=Complex1-Complex2;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;

    cout
<<"重載乘法運算"<<endl;
    Ret
=Complex1*Complex2;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;

    cout
<<"重載除法運算"<<endl;
    Ret
=Complex1/Complex2;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;

    cout
<<"前置++運算"<<endl;
    Ret
=++Complex1;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;

    cout
<<"后置++運算"<<endl;
    Ret
=Complex2++;
    cout
<<"Ret.x="<<Ret.x<<endl;
    cout
<<"Ret.y="<<Ret.y<<endl;
    
return 0;
}

輸出結果如下圖所示:


想要獲得更多內容,可點擊:《Visual C++代碼參考與技巧大全》學習筆記——索引隨筆
posted on 2010-02-17 17:25 煙皚 閱讀(3387) 評論(0)  編輯 收藏 引用 所屬分類: 《Visual C++代碼參考與技巧大全》學習筆記
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            免费黄网站欧美| 国产精品久久777777毛茸茸| 国产日韩一区二区三区| 小黄鸭视频精品导航| 中国成人亚色综合网站| 国产精品美女诱惑| 欧美一区二视频| 久久久xxx| 欧美成人免费网站| 国产一区二区三区直播精品电影 | 亚洲欧美一区二区三区极速播放| 欧美激情国产精品| 欧美国产一区二区在线观看| 一本久久综合亚洲鲁鲁| 一本一本大道香蕉久在线精品| 欧美系列亚洲系列| 欧美一级大片在线免费观看| 久久国产视频网站| 亚洲国产精品精华液网站| 亚洲精品乱码久久久久久蜜桃麻豆 | 在线中文字幕日韩| 性欧美大战久久久久久久免费观看| 国产色爱av资源综合区| 欧美成年人视频网站| 欧美日韩午夜在线| 久久久久久亚洲精品中文字幕 | 亚洲精品在线三区| 国产日韩精品一区二区| 亚洲大胆女人| 国产女主播一区二区三区| 免费久久99精品国产自| 欧美视频一区在线| 美女诱惑一区| 91久久精品国产91久久| 99riav久久精品riav| 韩国久久久久| 亚洲性感美女99在线| 亚洲第一在线综合网站| 亚洲午夜91| 亚洲精品乱码久久久久久黑人 | 亚洲精品日韩激情在线电影| 国产一区二区无遮挡| 夜夜精品视频| 亚洲激情电影在线| 欧美亚洲视频在线看网址| 99在线精品观看| 快she精品国产999| 久久大香伊蕉在人线观看热2| 欧美精品一区二区三区在线看午夜| 久久免费少妇高潮久久精品99| 欧美日韩精品一区| 国产偷国产偷亚洲高清97cao| 欧美福利一区| 久久精品国产综合精品| 欧美视频在线观看一区| 亚洲激情网站免费观看| 韩国女主播一区二区三区| 亚洲一区二区三区四区五区黄| 99精品黄色片免费大全| 可以免费看不卡的av网站| 国产精品亚洲一区| 99精品视频免费全部在线| 日韩视频免费| 欧美激情一区二区三区蜜桃视频 | 亚洲大胆女人| 久久久久久久久久久久久久一区| 欧美在线观看网址综合| 国产欧美精品日韩区二区麻豆天美| 中文精品视频一区二区在线观看| 亚洲美女视频在线观看| 欧美人与禽猛交乱配| 亚洲日本无吗高清不卡| 一区二区三区日韩欧美精品| 欧美日韩一区二区在线观看视频| 亚洲日本欧美天堂| 夜夜躁日日躁狠狠久久88av| 欧美日韩视频一区二区| 一本色道88久久加勒比精品| 亚洲男人影院| 国产精品一区二区久久精品 | 亚洲电影成人| 一区二区三区久久精品| 欧美日韩一二三区| 亚洲午夜激情| 久久精品五月| 亚洲看片网站| 国产精品毛片高清在线完整版 | 久久人人超碰| 亚洲人成亚洲人成在线观看| 欧美日韩亚洲精品内裤| 亚洲欧美激情诱惑| 麻豆av一区二区三区久久| 亚洲免费激情| 国产日本欧美一区二区三区在线| 久久精品国产精品亚洲| 亚洲精品中文字幕有码专区| 欧美亚洲色图校园春色| 在线成人激情视频| 欧美日韩一区自拍| 欧美一区二区三区日韩| 91久久精品国产91性色tv| 午夜精品国产| 亚洲三级电影全部在线观看高清| 国产精品成人aaaaa网站| 久久99伊人| 亚洲免费观看视频| 久久婷婷综合激情| 一区二区三区精品视频| 国产一区二三区| 欧美日韩免费网站| 久久九九全国免费精品观看| 日韩亚洲精品电影| 欧美69wwwcom| 欧美中文字幕视频| 日韩亚洲成人av在线| 国产一区视频观看| 国产精品久久国产愉拍| 美女主播一区| 欧美亚洲综合网| 日韩视频免费观看| 欧美高清视频www夜色资源网| 午夜精彩国产免费不卡不顿大片| 亚洲理伦在线| 亚洲第一狼人社区| 国产一区在线免费观看| 国产精品老女人精品视频| 欧美~级网站不卡| 久久久久久香蕉网| 久久综合亚洲社区| 久久精品91| 欧美制服丝袜| 欧美在线不卡| 亚洲欧美色婷婷| 亚洲女同在线| 亚洲一区二区在线观看视频| 亚洲美洲欧洲综合国产一区| 激情一区二区三区| 国产一区二区精品久久99| 国产精品久久久久久久久果冻传媒| 欧美精品首页| 欧美日韩一区二区三区高清| 欧美激情亚洲一区| 欧美成人一区在线| 欧美成人tv| 蜜臀va亚洲va欧美va天堂| 蜜桃伊人久久| 能在线观看的日韩av| 免费黄网站欧美| 欧美成人在线影院| 欧美精品色综合| 欧美手机在线| 国产酒店精品激情| 激情亚洲一区二区三区四区| 在线观看中文字幕不卡| 亚洲福利专区| 夜夜嗨av一区二区三区网页| 一区二区三区福利| 亚洲中字黄色| 久久激情婷婷| 欧美阿v一级看视频| 亚洲福利一区| 夜夜嗨av一区二区三区免费区| 中日韩在线视频| 欧美在线播放一区| 老司机免费视频久久| 欧美精品日韩精品| 国产精品久久二区二区| 狠狠色丁香婷婷综合久久片| 亚洲激情欧美激情| 一区二区三区免费观看| 欧美一级艳片视频免费观看| 久久亚洲美女| 日韩午夜在线视频| 欧美一级久久久久久久大片| 久久亚洲欧美| 欧美性感一类影片在线播放| 国产欧美日韩在线视频| 亚洲国产乱码最新视频| 一本大道久久a久久精二百| 午夜精品久久久久久99热软件| 久久亚洲高清| 一区二区av在线| 久久久久九九九| 国产伦精品一区二区| 国产精品亚洲综合色区韩国| 国一区二区在线观看| 一本久久综合亚洲鲁鲁| 久久国产精品一区二区三区四区| 最新精品在线| 欧美伊久线香蕉线新在线| 欧美日韩免费看| 亚洲成人影音| 久久不见久久见免费视频1| 亚洲国产成人av| 午夜精品区一区二区三| 欧美精品在线观看播放| 在线观看亚洲a| 欧美在线免费一级片| 一本一本a久久| 欧美成人激情视频免费观看|