最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ 基礎(chǔ)編程之十進(jìn)制轉(zhuǎn)換為任意進(jìn)制及操作符重載

 更新時(shí)間:2017年02月15日 14:48:52   投稿:lqh  
這篇文章主要介紹了C++ 基礎(chǔ)編程之十進(jìn)制轉(zhuǎn)換為任意進(jìn)制及操作符重載的相關(guān)資料,需要的朋友可以參考下

C++ 基礎(chǔ)編程之十進(jìn)制轉(zhuǎn)換為任意進(jìn)制及操作符重載

       最近學(xué)習(xí)C++ 的基礎(chǔ)知識(shí),完成十進(jìn)制轉(zhuǎn)換為任意進(jìn)制及操作符重載,在網(wǎng)上找的不錯(cuò)的資料,這里記錄下,

實(shí)例代碼:

#include<iostream> 
#include<vector> 
#include<limits> 
using namespace std; 
using std::iterator; 
///<summary> 
///十進(jìn)制轉(zhuǎn)換為任意進(jìn)制,為了熟悉操作符,也加了操作符重載。 
///包括自增(++),運(yùn)算符重(+),賦值函數(shù)重載(=),輸出符(<<) 
///</summary> 
class TenToAny 
{ 
  vector<char> value; 
  long long _n; 
  long long _x; 
public: 
  TenToAny():_n(10),_x(0) 
  {   
 
  } 
  void Switch() 
  { 
    try 
    { 
      int x=_x, n=_n; 
      char flag=' '; 
      if(x>LONG_MAX||x<LONG_MIN) 
        throw "溢出"; 
      if(x<0) 
      { 
        flag='-'; 
        x=-x; 
      } 
     
      while(x!=0) 
      { 
        long long remain = x%n; 
         x = x/n; 
     
        if(remain>=10) 
          remain = 'A'+ remain % 10; 
        else  
          remain +='0'; 
        value.push_back(remain); 
      } 
      vector<char>::reverse_iterator v= value.rbegin(); 
      while(*v=='0') 
        value.pop_back(); 
      if(flag=='-') 
        value.push_back(flag); 
    } 
    catch(char *e) 
    { 
      cout<<e<<endl; 
    } 
  } 
  TenToAny(long long n,long long x) 
  { 
    _n=n; 
    _x=x; 
    Switch(); 
  } 
  TenToAny &operator = (const TenToAny &num) 
  { 
    if(this==&num) 
      return *this; 
    value=num.value; 
    _n=num._n; 
    _x=num._x; 
    return *this; 
  } 
  TenToAny operator +(const TenToAny &num1) 
  { 
    TenToAny num; 
    num._x=num1._x + _x; 
    num._n=num1._n; 
    num.Switch(); 
    return num; 
  } 
  TenToAny &operator ++()//前置++ 
  { 
    _x++; 
    value.clear(); 
    this->Switch(); 
    return *this; 
  } 
  TenToAny &operator ++(int)//后置++ 
  { 
    TenToAny *temp=new TenToAny(this->_n,this->_x); 
    _x++; 
    value.clear(); 
    this->Switch(); 
    return *temp; 
  } 
  friend ostream &operator <<(ostream &out,TenToAny num); 
   
 
}; 
ostream &operator <<(ostream &out,TenToAny num) 
{ 
  vector<char> value =num.value; 
  vector<char>::reverse_iterator v= value.rbegin(); 
  for(;v!=value.rend();v++) 
  { 
    out<<*v; 
  } 
  return out; 
} 
int main() 
{ 
  TenToAny num(19,111); 
  TenToAny copy(19,222); 
  TenToAny sum; 
  sum =num+copy; 
  cout<<num<<endl; 
  cout<<copy<<endl; 
 
  cout<<copy++<<endl; 
 
  cout<<(++copy)<<endl; 
 
  return 0; 
} 

運(yùn)行結(jié)果:

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • C++ 中const對(duì)象與const成員函數(shù)的實(shí)例詳解

    C++ 中const對(duì)象與const成員函數(shù)的實(shí)例詳解

    這篇文章主要介紹了C++ 中const對(duì)象與const成員函數(shù)的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能讓大家徹底掌握該如何使用,需要的朋友可以參考下
    2017-08-08
  • 詳細(xì)分析C++ 異常處理

    詳細(xì)分析C++ 異常處理

    這篇文章主要介紹了C++ 異常處理的的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • C++中replace()?函數(shù)的基本用法

    C++中replace()?函數(shù)的基本用法

    今天就跟大家聊聊有關(guān)C++中replace()函數(shù)的作用是什么,可能很多人都不太了解,為了讓大家更加了解,這篇文章主要給大家介紹了關(guān)于C++中replace()?函數(shù)的基本用法,需要的朋友可以參考下
    2021-11-11
  • C++ Boost Pool超詳細(xì)講解

    C++ Boost Pool超詳細(xì)講解

    Boost是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱。Boost庫(kù)是一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱
    2022-11-11
  • VC++實(shí)現(xiàn)選擇排序算法簡(jiǎn)單示例

    VC++實(shí)現(xiàn)選擇排序算法簡(jiǎn)單示例

    這篇文章主要介紹了VC++實(shí)現(xiàn)選擇排序算法簡(jiǎn)單示例,代碼簡(jiǎn)潔易懂,有助于讀者對(duì)數(shù)據(jù)結(jié)構(gòu)與算法的學(xué)習(xí),需要的朋友可以參考下
    2014-08-08
  • C++中運(yùn)算符 &和&&、|和|| 的詳解及區(qū)別

    C++中運(yùn)算符 &和&&、|和|| 的詳解及區(qū)別

    這篇文章主要介紹了C++中運(yùn)算符 &和&&、|和|| 的詳解及區(qū)別的相關(guān)資料,這里舉例說(shuō)明該如何區(qū)別他們的不同,需要的朋友可以參考下
    2016-11-11
  • C語(yǔ)言驅(qū)動(dòng)開發(fā)之通過(guò)ReadFile與內(nèi)核層通信

    C語(yǔ)言驅(qū)動(dòng)開發(fā)之通過(guò)ReadFile與內(nèi)核層通信

    驅(qū)動(dòng)與應(yīng)用程序的通信是非常有必要的,內(nèi)核中執(zhí)行代碼后需要將其動(dòng)態(tài)顯示給應(yīng)用層。為了實(shí)現(xiàn)內(nèi)核與應(yīng)用層數(shù)據(jù)交互則必須有通信的方法,微軟為我們提供了三種通信方式,本文先來(lái)介紹通過(guò)ReadFile系列函數(shù)實(shí)現(xiàn)的通信模式
    2022-09-09
  • C++之異常處理詳解

    C++之異常處理詳解

    C++中處理異常的過(guò)程是這樣的:在執(zhí)行程序發(fā)生異常,可以不在本函數(shù)中處理,而是拋出一個(gè)錯(cuò)誤信息,把它傳遞給上一級(jí)的函數(shù)來(lái)解決,上一級(jí)解決不了,再傳給其上一級(jí),由其上一級(jí)處理
    2013-08-08
  • Opencv實(shí)現(xiàn)讀取攝像頭和視頻數(shù)據(jù)

    Opencv實(shí)現(xiàn)讀取攝像頭和視頻數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了Opencv實(shí)現(xiàn)讀取攝像頭和視頻數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 解析C/C++中如何終止線程的運(yùn)行

    解析C/C++中如何終止線程的運(yùn)行

    本篇文章是對(duì)C/C++中如何終止線程運(yùn)行的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評(píng)論

五原县| 九江市| 若尔盖县| 宽城| 富顺县| 大名县| 前郭尔| 长子县| 濉溪县| 宁德市| 山西省| 襄樊市| 孟州市| 苗栗县| 平湖市| 喀喇沁旗| 孟村| 寿宁县| 乐都县| 德阳市| 明星| 定西市| 潜山县| 聂拉木县| 中方县| 焉耆| 南京市| 曲沃县| 德阳市| 津市市| 巴彦县| 剑阁县| 泰兴市| 平武县| 久治县| 九龙城区| 斗六市| 竹北市| 象州县| 江油市| 桂林市|