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

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

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

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

復(fù)制代碼 代碼如下:

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


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

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

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

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

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

復(fù)制代碼 代碼如下:

#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;
}


結(jié)果:




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

2)對象向不同類的對象的轉(zhuǎn)換:

復(fù)制代碼 代碼如下:

#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()”類型轉(zhuǎn)換來實現(xiàn)將X類型對象轉(zhuǎn)換成A類型。

2.operator 用于操作符重載:

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

注意事項:

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

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

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

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

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

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

* 指向成員的指針

:: 作用域解析符

? : 問號條件運算符

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

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

return_type operator op(argument list);

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

op:要重載的操作符

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

相關(guān)文章

  • 詳解C++ 重載運算符和重載函數(shù)

    詳解C++ 重載運算符和重載函數(shù)

    這篇文章主要介紹了C++ 重載運算符和重載函數(shù)的的相關(guān)資料,文中示例代碼非常詳細,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C++超詳細講解友元的使用

    C++超詳細講解友元的使用

    采用類的機制后實現(xiàn)了數(shù)據(jù)的隱藏與封裝,類的數(shù)據(jù)成員一般定義為私有成員,成員函數(shù)一般定義為公有的,依此提供類與外界間的通信接口。但是,有時需要定義一些函數(shù),這些函數(shù)不是類的一部分,但又需要頻繁地訪問類的數(shù)據(jù)成員,這時可以將這些函數(shù)定義為該類的友元函數(shù)
    2022-04-04
  • C語言數(shù)據(jù)結(jié)構(gòu)詳細解析二叉樹的操作

    C語言數(shù)據(jù)結(jié)構(gòu)詳細解析二叉樹的操作

    二叉樹可以簡單理解為對于一個節(jié)點來說,最多擁有一個上級節(jié)點,同時最多具備左右兩個下級節(jié)點的數(shù)據(jù)結(jié)構(gòu)。本文將詳細介紹一下C++中二叉樹的實現(xiàn)和遍歷,需要的可以參考一下
    2022-04-04
  • Cocos2d-x 3.x入門教程(二):Node節(jié)點類

    Cocos2d-x 3.x入門教程(二):Node節(jié)點類

    這篇文章主要介紹了Cocos2d-x 3.x入門教程(二):Node節(jié)點類,本文對Node節(jié)點類做了一個簡明講解及Node類提供的函數(shù)做了說明,需要的朋友可以參考下
    2014-11-11
  • C++中?‘=default?’及‘?=delete?’的使用

    C++中?‘=default?’及‘?=delete?’的使用

    這篇文章主要介紹了C++中?=default?及?=delete?使用,使用=default和=delete可以控制編譯器默認函數(shù)體的使用,下面我們就來看看具體的室友方法吧,需要的朋友也可以參考一下
    2021-12-12
  • C++實現(xiàn)獲取本機MAC地址與IP地址

    C++實現(xiàn)獲取本機MAC地址與IP地址

    這篇文章主要為大家詳細介紹了C++實現(xiàn)獲取本機MAC地址與IP地址的兩種方式,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • C++二進制翻轉(zhuǎn)實例分析

    C++二進制翻轉(zhuǎn)實例分析

    這篇文章主要介紹了C++二進制翻轉(zhuǎn),通過幾個實例分析二進制翻轉(zhuǎn)算法的實現(xiàn)技巧,需要的朋友可以參考下
    2014-09-09
  • C++多線程編程簡單實例

    C++多線程編程簡單實例

    本文給大家分享的是C++多線程編程簡單實例,由于C++本身沒有多線程機制,在windows下我們使用調(diào)用SDK win32 api來實現(xiàn),示例都很簡單,講解的也很詳細,推薦給大家。
    2015-03-03
  • C語言實現(xiàn)加密解密功能

    C語言實現(xiàn)加密解密功能

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)加密解密功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C語言中的結(jié)構(gòu)體快排算法

    C語言中的結(jié)構(gòu)體快排算法

    這篇文章主要介紹了C語言中的結(jié)構(gòu)體快排算法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論

阜新市| 锡林郭勒盟| 绥江县| 应城市| 垦利县| 泾源县| 安溪县| 丹巴县| 北票市| 全椒县| 萝北县| 克东县| 东平县| 淳安县| 上蔡县| 平阳县| 深泽县| 巴马| 南丰县| 滁州市| 漠河县| 镇雄县| 江北区| 沙河市| 峨眉山市| 南木林县| 新余市| 台江县| 太原市| 博兴县| 榆中县| 娱乐| 扬州市| 偃师市| 芦山县| 杭州市| 长寿区| 太白县| 古浪县| 玛多县| 交城县|