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

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

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

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

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

實例代碼:

#include<iostream> 
#include<vector> 
#include<limits> 
using namespace std; 
using std::iterator; 
///<summary> 
///十進制轉(zhuǎ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; 
} 

運行結(jié)果:

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

相關(guān)文章

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

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

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

    詳細分析C++ 異常處理

    這篇文章主要介紹了C++ 異常處理的的相關(guān)資料,文中示例代碼非常詳細,幫助大家更好的理解和學(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超詳細講解

    C++ Boost Pool超詳細講解

    Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱
    2022-11-11
  • VC++實現(xiàn)選擇排序算法簡單示例

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

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

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

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

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

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

    C++之異常處理詳解

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

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

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

    解析C/C++中如何終止線程的運行

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

最新評論

乐山市| 新民市| 锡林浩特市| 即墨市| 德清县| 绥江县| 闽清县| 黔江区| 阿荣旗| 嘉定区| 锡林郭勒盟| 华容县| 屏东市| 南川市| 塔城市| 桃江县| 禹州市| 罗平县| 闽清县| 望奎县| 和硕县| 保定市| 巴中市| 缙云县| 德兴市| 柳林县| 房山区| 胶州市| 牟定县| 石阡县| 子长县| 浮梁县| 越西县| 黄骅市| 凯里市| 沾化县| 安阳县| 乌鲁木齐县| 开化县| 班玛县| 确山县|