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

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

C語言

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

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

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊: 次

C++ 為類(Class)提供了許多默認(rèn)函數(shù)。如果自己沒有申明,編譯器會(huì)為我們提供一個(gè)copy構(gòu)造函數(shù)、一個(gè)copy assignment操作符和一個(gè)析構(gòu)函數(shù)。此外,如果沒有申明任何構(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++說的,如果不想使用編譯器自動(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行編譯不能通過。因?yàn)檫@時(shí),就沒有隱式構(gòu)造函數(shù)啦。

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

上一篇:C語言實(shí)現(xiàn)txt數(shù)據(jù)讀入內(nèi)存/CPU緩存實(shí)例詳解

欄    目:C語言

下一篇:c++ 編程 幾個(gè)有用的宏詳解

本文標(biāo)題:淺談C++ Explicit Constructors(顯式構(gòu)造函數(shù))

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

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(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)所有