欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談C++ Explicit Constructors(顯式構(gòu)造函數(shù))

 更新時(shí)間:2016年12月29日 09:45:58   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇淺談C++ Explicit Constructors(顯式構(gòu)造函數(shù))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

C++ 為類(Class)提供了許多默認(rèn)函數(shù)。如果自己沒(méi)有申明,編譯器會(huì)為我們提供一個(gè)copy構(gòu)造函數(shù)、一個(gè)copy assignment操作符和一個(gè)析構(gòu)函數(shù)。此外,如果沒(méi)有申明任何構(gòu)造函數(shù),編譯器會(huì)為我們申明一個(gè)default構(gòu)造函數(shù)。很像下面的Empty類:

class Empty{
  public:
    Empty();
    Empty(const Empty &rhs);
    ~Empty();
    Empty& operator=(const Empty &rhs);
};

就像Effective C++說(shuō)的,如果不想使用編譯器自動(dòng)生成的函數(shù),就應(yīng)該明確拒絕。

1.C++中的隱式構(gòu)造函數(shù)

如果c++類的其中一個(gè)構(gòu)造函數(shù)有一個(gè)參數(shù),那么在編譯的時(shí)候就會(huì)有一個(gè)缺省的轉(zhuǎn)換操作:將該構(gòu)造函數(shù)對(duì)應(yīng)數(shù)據(jù)類型的數(shù)據(jù)轉(zhuǎn)換為該類對(duì)象。

2.Explicit Constructors顯式構(gòu)造函數(shù)

為了避免上面提到的只有一個(gè)參數(shù)的構(gòu)造函數(shù)采用的缺省轉(zhuǎn)換操作,在構(gòu)造函數(shù)前,使用Explicit 關(guān)鍵字修飾即可。

3.如下面的例子:

#include <iostream>
using namespace std;
class B{
  public:
    int data;
    B(int _data):data(_data){}
    //explicit B(int _data):data(_data){}
};

int main(){
  B temp=5;
  cout<<temp.data<<endl;
  return 0;
}

程序第11行,將int轉(zhuǎn)換為B類型的對(duì)象,就是使用了隱式構(gòu)造函數(shù)。因?yàn)锽中存在一個(gè)只有一個(gè)參數(shù)的構(gòu)造函數(shù),且參數(shù)類型也是int。

如果在構(gòu)造函數(shù)前加explicit ,表示為顯示構(gòu)造函數(shù),則第11行編譯不能通過(guò)。因?yàn)檫@時(shí),就沒(méi)有隱式構(gòu)造函數(shù)啦。

以上這篇淺談C++ Explicit Constructors(顯式構(gòu)造函數(shù))就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++ 二維(多維)vector添加一個(gè)空項(xiàng)問(wèn)題

    C++ 二維(多維)vector添加一個(gè)空項(xiàng)問(wèn)題

    這篇文章主要介紹了C++ 二維(多維)vector添加一個(gè)空項(xiàng)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 深入理解c++常成員函數(shù)和常對(duì)象

    深入理解c++常成員函數(shù)和常對(duì)象

    下面小編就為大家?guī)?lái)一篇深入理解c++常成員函數(shù)和常對(duì)象。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • C++ open()和read()函數(shù)使用詳解

    C++ open()和read()函數(shù)使用詳解

    這篇文章主要介紹了C++中open()和read()函數(shù)的使用方法和參數(shù),open()函數(shù)用于打開(kāi)文件并返回文件描述符,read()函數(shù)用于從文件描述符中讀取數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • opencv利用矩形框選中某一區(qū)域并保存為新圖片

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

    這篇文章主要為大家詳細(xì)介紹了opencv利用矩形框選中某一區(qū)域并保存為新圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C語(yǔ)言實(shí)戰(zhàn)之浪漫煙花表白程序代碼

    C語(yǔ)言實(shí)戰(zhàn)之浪漫煙花表白程序代碼

    這篇文章主要介紹了C語(yǔ)言實(shí)戰(zhàn)之浪漫煙花表白程序代碼,需要的朋友可以參考下
    2021-04-04
  • C語(yǔ)言實(shí)現(xiàn)掃雷游戲

    C語(yǔ)言實(shí)現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C++通過(guò)控制臺(tái)訪問(wèn)deepseek接口并進(jìn)行對(duì)話

    C++通過(guò)控制臺(tái)訪問(wèn)deepseek接口并進(jìn)行對(duì)話

    這篇文章主要為大家詳細(xì)介紹了C++如何通過(guò)控制臺(tái)訪問(wèn)deepseek接口并進(jìn)行對(duì)話,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • FFmpeg實(shí)現(xiàn)多線程編碼并保存mp4文件

    FFmpeg實(shí)現(xiàn)多線程編碼并保存mp4文件

    這篇文章主要為大家介紹了FFmpeg如何持續(xù)的從指定內(nèi)存中讀取原始數(shù)據(jù),再將解碼數(shù)據(jù)存入隊(duì)列中,并通過(guò)單獨(dú)的線程進(jìn)行編碼,最后保存為mp4文件,感興趣的可以了解下
    2023-08-08
  • C語(yǔ)言中字符串與各數(shù)值類型之間的轉(zhuǎn)換方法

    C語(yǔ)言中字符串與各數(shù)值類型之間的轉(zhuǎn)換方法

    這篇文章主要介紹了C語(yǔ)言中字符串與各數(shù)值類型之間的轉(zhuǎn)換方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 詳解C++11中的lambda匿名函數(shù)

    詳解C++11中的lambda匿名函數(shù)

    匿名函數(shù),簡(jiǎn)單地理解就是沒(méi)有名稱的函數(shù),又常被稱為 lambda 函數(shù)或者 lambda 表達(dá)式,這篇文章主要介紹了C++11中的lambda匿名函數(shù),需要的朋友可以參考下
    2022-11-11

最新評(píng)論