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

C++ 轉(zhuǎn)換函數(shù)用法案例詳解

 更新時間:2021年09月10日 17:01:50   作者:雙非渣渣的自贖之路  
這篇文章主要介紹了C++ 轉(zhuǎn)換函數(shù)用法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下

1.標(biāo)準(zhǔn)數(shù)據(jù)之間會進行隱式類型安全轉(zhuǎn)換,規(guī)則如下:

 在這里主要探討c++中類類型與普通類型的轉(zhuǎn)換:

1.類類型轉(zhuǎn)換普通類型

class Fraction
{
public:
	Fraction(int num,int den=1);
	~Fraction();
    //轉(zhuǎn)換函數(shù)
   /*
    轉(zhuǎn)換函數(shù)語法規(guī)則:
     operator Type()
       {
      Type ret ;
      ........
       return ret;
    }
   */
	operator double() const {
		return (double)(m_Numerator*1.0 / m_Denominator);
	}
private:
	int  m_Numerator;
	int m_Denominator;
};
 
 
 
Fraction f(3, 5);
double d = 4 + f;//d=4.6

這里4+f,調(diào)用轉(zhuǎn)換函數(shù)將f轉(zhuǎn)換為0.6

2.普通類型轉(zhuǎn)換為類類型(non-explicit-one-argument ctor)

class Fraction
{
public:
	Fraction(int num,int den=1);
	~Fraction();
	
	Fraction operator+(const Fraction& f) {
		return Fraction(this->m_Numerator * f.m_Denominator + this->m_Denominator * f.m_Numerator,
			f.m_Denominator * this->m_Denominator);
	}
 
private:
	int  m_Numerator;
	int m_Denominator;
};
Fraction f(3, 5);
Fraction d = f + 4;//調(diào)用+運算符函數(shù),4會轉(zhuǎn)為Fraction(4,1),含有接受一個參數(shù)的構(gòu)造函數(shù),否則也無法轉(zhuǎn)換

3.同時含有轉(zhuǎn)換函數(shù)和可以隱式的調(diào)用構(gòu)造函數(shù)(轉(zhuǎn)換構(gòu)造參數(shù))會報錯

class Fraction
{
public: 
   /*
    轉(zhuǎn)換構(gòu)造函數(shù):
    -有僅有一個參數(shù)
    -參數(shù)是基本類型
    -參數(shù)是其它類型
   */
	Fraction(int num,int den=1);
	~Fraction();
 
	operator double() const {
		return (double)(m_Numerator*1.0 / m_Denominator);
	}
	Fraction operator+(const Fraction& f) {
		return Fraction(this->m_Numerator * f.m_Denominator + this->m_Denominator * f.m_Numerator,
			f.m_Denominator * this->m_Denominator);
	}
private:
	int  m_Numerator;
	int m_Denominator;
};

報錯:   “Fraction::operator +”: 2 個重載有相似的轉(zhuǎn)換    ,

所以在我們寫構(gòu)造函數(shù)都會使用關(guān)鍵字 explicit 防止類型隱式轉(zhuǎn)換

class Fraction
{
public:
	
	explicit Fraction(int num,int den=1);
	~Fraction();
	operator double() const {
		return (double)(m_Numerator*1.0 / m_Denominator);
	}
	Fraction operator+(const Fraction& f) {
		return Fraction(this->m_Numerator * f.m_Denominator + this->m_Denominator * f.m_Numerator,
			f.m_Denominator * this->m_Denominator);
	}
 
private:
	int  m_Numerator;
	int m_Denominator;
};
Fraction f(3, 5);
Fraction d = f + 4;//報錯:不存在從 "double" 轉(zhuǎn)換到 "Fraction" 的適當(dāng)構(gòu)造函數(shù)
double d = f + 4;//可以,f轉(zhuǎn)換

到此這篇關(guān)于C++ 轉(zhuǎn)換函數(shù)用法案例詳解的文章就介紹到這了,更多相關(guān)C++ 轉(zhuǎn)換函數(shù)用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言指針必備基礎(chǔ)全面覆蓋

    C語言指針必備基礎(chǔ)全面覆蓋

    數(shù)據(jù)對象是指存儲在內(nèi)存中的一個指定數(shù)據(jù)類型的數(shù)值或字符串,它們都有一個自己的地址,指針是保存這個地址的變量,本篇文章帶你掌握C語言指針的用法
    2021-10-10
  • C語言實現(xiàn)素因子分解

    C語言實現(xiàn)素因子分解

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)素因子分解,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C++實現(xiàn)LeetCode(26.有序數(shù)組中去除重復(fù)項)

    C++實現(xiàn)LeetCode(26.有序數(shù)組中去除重復(fù)項)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(26.有序數(shù)組中去除重復(fù)項),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++基礎(chǔ)學(xué)習(xí)之利用兩個棧實現(xiàn)一個隊列

    C++基礎(chǔ)學(xué)習(xí)之利用兩個棧實現(xiàn)一個隊列

    這篇文章主要給大家介紹了關(guān)于C++基礎(chǔ)學(xué)習(xí)之利用兩個棧實現(xiàn)一個隊列的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 詳解C++語法中的虛繼承和虛基類

    詳解C++語法中的虛繼承和虛基類

    本文主要介紹了C++語法中的虛繼承和虛基類,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • c語言讀取obj文件轉(zhuǎn)換數(shù)據(jù)的小例子

    c語言讀取obj文件轉(zhuǎn)換數(shù)據(jù)的小例子

    c語言讀取obj文件轉(zhuǎn)換數(shù)據(jù)的小例子,需要的朋友可以參考一下
    2013-03-03
  • 指向類成員函數(shù)的指針其實并非指針

    指向類成員函數(shù)的指針其實并非指針

    對于指向類成員的指針,必須緊記,指向類成員(非static)的指針并非指針
    2013-08-08
  • Seesion在C++服務(wù)端的使用方法

    Seesion在C++服務(wù)端的使用方法

    這篇文章主要介紹了Seesion在C++服務(wù)端是怎么使用的?本文給出了解決方案和實例代碼供大家參考,需要的朋友可以參考下
    2020-02-02
  • Qt實現(xiàn)TCP網(wǎng)絡(luò)編程

    Qt實現(xiàn)TCP網(wǎng)絡(luò)編程

    這篇文章主要為大家詳細介紹了Qt實現(xiàn)TCP網(wǎng)絡(luò)編程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C++之實現(xiàn)快速清空vector以及釋放vector內(nèi)存

    C++之實現(xiàn)快速清空vector以及釋放vector內(nèi)存

    這篇文章主要介紹了C++之實現(xiàn)快速清空vector以及釋放vector內(nèi)存方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

汶上县| 股票| 大厂| 嫩江县| 昭苏县| 辽中县| 五华县| 鹿邑县| 土默特左旗| 罗平县| 陆良县| 金阳县| 重庆市| 涟水县| 科尔| 柳江县| 都安| 胶州市| 浙江省| 神池县| 耿马| 资阳市| 黑山县| 新龙县| 阳西县| 通海县| 泊头市| 龙门县| 公主岭市| 丹巴县| 阿克陶县| 浪卡子县| 上高县| 庆阳市| 大埔县| 肇庆市| 深泽县| 呼和浩特市| 利辛县| 眉山市| 上杭县|