欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

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

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎ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ù)又稱類型強(qiáng)制轉(zhuǎn)換成員函數(shù),它是類中的一個(gè)非靜態(tài)成員函數(shù)。它的定義格式如下:

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

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


這個(gè)轉(zhuǎn)換函數(shù)定義了由<類型說(shuō)明符1>到<類型說(shuō)明符2>之間的映射關(guān)系。可見(jiàn),轉(zhuǎn)換函數(shù)是用來(lái)將一種類型的數(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ù)沒(méi)有參數(shù),沒(méi)有返回值,但是有return 語(yǔ)句,在return語(yǔ)句中返回目標(biāo)類型數(shù)據(jù)或調(diào)用目標(biāo)類的構(gòu)造函數(shù)。

類型轉(zhuǎn)換函數(shù)主要有兩類:
1) 對(duì)象向基本數(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é)果:




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

2)對(duì)象向不同類的對(duì)象的轉(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;
}




上面這個(gè)程序中X類通過(guò)“operator A()”類型轉(zhuǎn)換來(lái)實(shí)現(xiàn)將X類型對(duì)象轉(zhuǎn)換成A類型。

2.operator 用于操作符重載:

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

注意事項(xiàng):

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

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

3) 只能對(duì)已有的操作符進(jìn)行重載,而不能重載新符號(hào)。

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

5) 以下運(yùn)算符不能被重載:

. 原點(diǎn)操作符(成員訪問(wèn)符)

* 指向成員的指針

:: 作用域解析符

? : 問(wèn)號(hào)條件運(yùn)算符

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

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

return_type operator op(argument list);

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

op:要重載的操作符

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

上一篇:GetChar緩存機(jī)制深入剖析

欄    目:C語(yǔ)言

下一篇:c++類的隱式轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換重載詳解

本文標(biāo)題:C++中Operator類型強(qiáng)制轉(zhuǎn)換成員函數(shù)解析

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4168.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有