国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

淺談C++類型轉化(運算符重載函數)和基本運算符重載(自增自減)

2020-01-26 14:05:33
字體:
來源:轉載
供稿:網友

類型轉化(運算符重載函數)

用轉換構造函數可以將一個指定類型的數據轉換為類的對象。但是不能反過來將一個類的對象轉換為一個其他類型的數據(例如將一個Complex類對象轉換成double類型數據)。在C++提供類型轉換函數(type conversion function)來解決這個問題。類型轉換函數的作用是將一個類的對象轉換成另一類型的數據。

類型轉換函數的一般形式為:

operator 類型名( ){  實現轉換的語句}

下面是簡單實現。這時候,Base起了兩方面的作用:類和數據類型。系統會在需要的時候自動調用對應的類方法。

#include <iostream>using namespace std;class Base{  private:    float x;    int y;  public:    Base (float xx=0,int yy=0){      x = xx;      y = yy;    }    operator float (){      return x;    }    operator int (){      return y;    }    void display(){      cout<<"x is :"<<x<<";y is :"<<y<<endl;    }};int main(){  Base base(1.0,2);  base.display();  int y= base;  float x= base;  cout<<"NewX is :"<<x<<"NewY is:"<<y<<endl;  return 0;}

基本運算符重載(自增自減)

主要總結 自增自減的前置和后置的用法。其他的加減乘除較簡單。

簡單的代碼實現(純語法)

#include <iostream>using namespace std;class Base{  private:    float x;    int y;  public:    Base (float xx=0,int yy=0){      x = xx;      y = yy;    }    operator float (){      return x;    }    operator int (){      return y;    }    Base operator ++(){//前置 ++      x++;      y++;      return *this;    }     Base operator --(){      x--;      y--;      return *this;    }    Base operator ++(int ){//后置 ++      Base temp = *this;      ++(*this);      return temp;    }    Base operator --(int ){      Base temp = *this;      --(*this);      return temp;    }    void display(){      cout<<"x is :"<<x<<";y is :"<<y<<endl;    }    };int main(){  Base base(1.0,1);  Base tem = base++;  base.display();  tem.display();     Base base2(1.0,1);  tem = ++base2;  base.display();  tem.display();   return 0;}

發現:

后置和前置的區別是有無int參數。

后置需要申請新的空間,大小是類的大小。所以,后置操作會有額外的時間空間開銷。

盡量使用前置操作:如:for (int i=0;i<n;++i)

以上這篇淺談C++類型轉化(運算符重載函數)和基本運算符重載(自增自減)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 井陉县| 莱芜市| 昔阳县| 大厂| 青冈县| 海兴县| 射阳县| 康乐县| 东光县| 汾西县| 苍南县| 兴城市| 利辛县| 华安县| 阳城县| 安图县| 任丘市| 榆林市| 林口县| 马公市| 商都县| 行唐县| 兰溪市| 逊克县| 新民市| 平南县| 曲靖市| 潍坊市| 奉化市| 海安县| 奉贤区| 环江| 文山县| 梁平县| 梁山县| 华安县| 喜德县| 城固县| 扎囊县| 东城区| 阜城县|