亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++中Operator類型強制轉換成員函數(shù)解析

 更新時間:2013年09月12日 10:21:51   作者:  
轉換函數(shù)定義了由<類型說明符1>到<類型說明符2>之間的映射關系??梢?,轉換函數(shù)是用來將一種類型的數(shù)據(jù)轉換成為另一種類型

類型轉換操作符(type conversion operator)是一種特殊的類成員函數(shù),它定義將類類型值轉變?yōu)槠渌愋椭档霓D換。轉換操作符在類定義體內聲明,在保留字 operator 之后跟著轉換的目標類型。轉換函數(shù)又稱類型強制轉換成員函數(shù),它是類中的一個非靜態(tài)成員函數(shù)。它的定義格式如下:

復制代碼 代碼如下:

   class <類型說明符1>
    {
     public:
      operator <類型說明符2>();
      …
    }


這個轉換函數(shù)定義了由<類型說明符1>到<類型說明符2>之間的映射關系??梢?,轉換函數(shù)是用來將一種類型的數(shù)據(jù)轉換成為另一種類型。

1.operator用于類型轉換函數(shù):

類型轉換函數(shù)的特征:

1) 型轉換函數(shù)定義在源類中;
2) 須由 operator 修飾,函數(shù)名稱是目標類型名或目標類名;
3) 函數(shù)沒有參數(shù),沒有返回值,但是有return 語句,在return語句中返回目標類型數(shù)據(jù)或調用目標類的構造函數(shù)。

類型轉換函數(shù)主要有兩類:
1) 對象向基本數(shù)據(jù)類型轉換:

復制代碼 代碼如下:

#include<iostream>
#include<string>
using namespace std;

class D{
public:
 D(double d):d_(d) {}
 operator int() const{
  std::cout<<"(int)d called!"<<std::endl;
  return static_cast<int>(d_);
 }
private:
 double d_;
};

int add(int a,int b){
 return a+b;
}

int main(){
 D d1=1.1;
 D d2=2.2;
 std::cout<<add(d1,d2)<<std::endl;
 system("pause");
 return 0;
}


結果:




可見在add(d1,d2)函數(shù)調用時隱性地調用了operator int() const 函數(shù)。

2)對象向不同類的對象的轉換:

復制代碼 代碼如下:

#include<iostream>
class X;
class A
{
public:
 A(int num=0):dat(num) {}
    A(const X& rhs):dat(rhs) {}
 operator int() {return dat;}
private:
 int dat;
};

class X
{
public:
 X(int num=0):dat(num) {}
 operator int() {return dat;}
 operator A(){
  A temp=dat;
  return temp;
 }
private:
 int dat;
};

int main()
{
  X stuff=37;
  A more=0;
  int hold;
  hold=stuff;
  std::cout<<hold<<std::endl;
  more=stuff;
  std::cout<<more<<std::endl;
  return 0;
}




上面這個程序中X類通過“operator A()”類型轉換來實現(xiàn)將X類型對象轉換成A類型。

2.operator 用于操作符重載:

操作符重載的概念:
將現(xiàn)有操作符與一個成員函數(shù)相關聯(lián),并將該操作符與其成員對象(操作數(shù))一起使用。

注意事項:

1) 重載不能改變操作符的基本功能,以及該操作符的優(yōu)先級順序。

2) 重載不應改變操作符的本來含義。

3) 只能對已有的操作符進行重載,而不能重載新符號。

4) 操作符重載只對類可用。

5) 以下運算符不能被重載:

. 原點操作符(成員訪問符)

* 指向成員的指針

:: 作用域解析符

? : 問號條件運算符

sizeof 操作數(shù)的字節(jié)數(shù)

操作符函數(shù)的一般格式:

return_type operator op(argument list);

return_type:返回類型(要得到什么)

op:要重載的操作符

argument list:參數(shù)列表(操作數(shù)有哪些)

相關文章

  • 深入理解C語言指針

    深入理解C語言指針

    關于指針,其是C語言的重點,C語言學的好壞,其實就是指針學的好壞。其實指針并不復雜,學習指針,要正確的理解指針
    2020-02-02
  • C++ ReSharper2021激活碼永久有效

    C++ ReSharper2021激活碼永久有效

    ReSharperC++是為c/c++開發(fā)者打造的一款實用Visual Studio擴展插件,這款插件旨在提升開發(fā)者的效率,今天給大家分享這款軟件的激活方法,需要C++ ReSharper2021激活碼的朋友參考下本文
    2021-06-06
  • 如何給隨機數(shù)加密

    如何給隨機數(shù)加密

    隨機數(shù)加密的簡單算法,需要的朋友可以參考一下
    2013-03-03
  • opencv利用矩形框選中某一區(qū)域并保存為新圖片

    opencv利用矩形框選中某一區(qū)域并保存為新圖片

    這篇文章主要為大家詳細介紹了opencv利用矩形框選中某一區(qū)域并保存為新圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 淺析ORB、SURF、SIFT特征點提取方法以及ICP匹配方法

    淺析ORB、SURF、SIFT特征點提取方法以及ICP匹配方法

    這篇文章主要為大家介紹了常用的特征點提取方法(ORB、SURF、SIFT)和ICP匹配方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2021-12-12
  • C++類與對象深入之靜態(tài)成員與友元及內部類詳解

    C++類與對象深入之靜態(tài)成員與友元及內部類詳解

    朋友們好,這篇播客我們繼續(xù)C++的初階學習,現(xiàn)在對我們對C++的靜態(tài)成員,友元,內部類知識點做出總結,整理出來一篇博客供我們一起復習和學習,如果文章中有理解不當?shù)牡胤?還希望朋友們在評論區(qū)指出,我們相互學習,共同進步
    2022-06-06
  • C語言實現(xiàn)簡單的貪吃蛇游戲

    C語言實現(xiàn)簡單的貪吃蛇游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單的貪吃蛇游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C語言求兩個正整數(shù)的最大公約數(shù)示例代碼

    C語言求兩個正整數(shù)的最大公約數(shù)示例代碼

    在C語言中求兩個數(shù)的最大公約數(shù)是學習循環(huán)語句的非常經典的問題,下面這篇文章主要給大家介紹了關于C語言求兩個正整數(shù)的最大公約數(shù)的相關資料,需要的朋友可以參考下
    2021-12-12
  • C++中的命名空間詳細介紹

    C++中的命名空間詳細介紹

    大家好,本篇文章主要講的是C++中的命名空間詳細介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • c++ 封裝一個截圖服務

    c++ 封裝一個截圖服務

    這篇文章主要介紹了c++ 封裝一個截圖服務的方法,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
    2021-01-01

最新評論