RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C++:詳談構(gòu)造函數(shù)

如意 ? 來源:百家號(hào) ? 作者:cherrydreamsover ? 2020-06-29 11:44 ? 次閱讀

構(gòu)造函數(shù)

1.概念

構(gòu)造函數(shù):一個(gè)特殊的成員函數(shù),名字與類名相同,創(chuàng)建類類型對(duì)象的時(shí)候,由編譯器自動(dòng)調(diào)用,在對(duì)象的生命周期內(nèi)只且調(diào)用一次,以保證每個(gè)數(shù)據(jù)成員都有一個(gè)合適的初始值。

2.構(gòu)造函數(shù)的特性

函數(shù)名和類名相同;

沒有返回值;

有初始化列表(可以不用);

新對(duì)象被創(chuàng)建,由編譯器自動(dòng)調(diào)用,且在對(duì)象的生命周期內(nèi)僅調(diào)用一次;

構(gòu)造函數(shù)可以重載,實(shí)參決定了調(diào)用哪個(gè)構(gòu)造函數(shù);

如果沒有顯示的調(diào)用時(shí),編譯器會(huì)提供一個(gè)默認(rèn)的構(gòu)造函數(shù);

無參構(gòu)造函數(shù)和帶有缺省值的構(gòu)造函數(shù)都認(rèn)為是缺省構(gòu)造函數(shù),并且缺省構(gòu)造函數(shù)只能有一個(gè);

構(gòu)造函數(shù)不能用const修飾(因?yàn)閏onst修飾類的成員函數(shù)時(shí),該函數(shù)不能修改成員變量,但是構(gòu)造函數(shù)要修改類的成員變量,因此不可以由const修飾)

3.初始化列表

C++:詳談構(gòu)造函數(shù)

以冒號(hào)開始,接著是以逗號(hào)分隔的數(shù)據(jù)成員列表,每個(gè)數(shù)據(jù)成員后面跟一個(gè)放在圓括號(hào)中的初始化式。

4.初始化順序

數(shù)據(jù)成員在類中定義的順序就是參數(shù)列表中的初始化順序;

初始化列表僅用于初始化數(shù)據(jù)成員,并不指定這些數(shù)據(jù)成員的初始化順序;

每個(gè)成員在初始化列表中只能出現(xiàn)一次;

盡量避免使用成員初始化成員,成員初始化順序最好和成員的定義順序保持一致。

類中包含以下成員必須要放在初始化列表中初始化:

(1)引用數(shù)據(jù)類型

(2)const數(shù)據(jù)類型

(3)類類型成員(該類沒有缺省的構(gòu)造函數(shù))

5.默認(rèn)構(gòu)造函數(shù)

默認(rèn)構(gòu)造函數(shù)使用與成員變量初始化相同的規(guī)則初始化成員,對(duì)于內(nèi)置類型和復(fù)合類型的成員,如組、指針,只對(duì)定義在全局定義作用于的對(duì)象初始化,對(duì)于局部作用域的內(nèi)置和復(fù)合類型不作初始化。

6.構(gòu)造函數(shù)的作用

構(gòu)建對(duì)象

初始化對(duì)象

類型轉(zhuǎn)換

7.explcit

用explicit修飾構(gòu)造函數(shù),抑制由構(gòu)造函數(shù)定義的隱式轉(zhuǎn)換,explicit關(guān)鍵字類內(nèi)部的構(gòu)建聲明上,在類的定義體外部的定義上不再重復(fù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2108

    瀏覽量

    73618
  • 構(gòu)造函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    2734
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問STM32 C++構(gòu)造函數(shù)怎么修改才能實(shí)現(xiàn)全局變量的初始化呢?

    在STM32F10X項(xiàng)目中使用了C++的特性,使用arm-none-eabi-g++編譯,程序可以正常運(yùn)行。問題: C++定義的全局變量,其類的構(gòu)造函數(shù)不被執(zhí)行,在
    發(fā)表于 10-10 08:45

    C++課程資料詳細(xì)資料合集包括了:面向?qū)ο蟪绦蛟O(shè)計(jì)與C++,算法,函數(shù)

    本文檔的主要內(nèi)容詳細(xì)介紹的是C++課程資料資料合集包括了:面向?qū)ο蟪绦蛟O(shè)計(jì)與C++,算法,函數(shù),概述, C++語(yǔ)言基礎(chǔ),構(gòu)造數(shù)據(jù)類型,數(shù)據(jù)類
    發(fā)表于 07-09 08:00 ?18次下載
    <b class='flag-5'>C++</b>課程資料詳細(xì)資料合集包括了:面向?qū)ο蟪绦蛟O(shè)計(jì)與<b class='flag-5'>C++</b>,算法,<b class='flag-5'>函數(shù)</b>等

    如何深度解析C++拷貝構(gòu)造函數(shù)詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何深度解析C++拷貝構(gòu)造函數(shù)詳細(xì)資料說明。
    發(fā)表于 07-05 17:41 ?0次下載
    如何深度解析<b class='flag-5'>C++</b>拷貝<b class='flag-5'>構(gòu)造</b><b class='flag-5'>函數(shù)</b>詳細(xì)資料說明

    如何在中斷C函數(shù)中調(diào)用C++

    之前,我們?cè)趩纹瑱C(jī)程序開發(fā)時(shí)都會(huì)面對(duì)中斷函數(shù)。眾所周知的,這個(gè)中斷函數(shù)肯定是要用C函數(shù)來定義的。我在用C++進(jìn)行程序開發(fā)的時(shí)候就發(fā)現(xiàn)了一個(gè)需
    發(fā)表于 05-09 18:17 ?0次下載
    如何在中斷<b class='flag-5'>C</b><b class='flag-5'>函數(shù)</b>中調(diào)用<b class='flag-5'>C++</b>

    Linux共享庫(kù)的構(gòu)造函數(shù)和析構(gòu)函數(shù)

    共享庫(kù)有類似C++構(gòu)造和析構(gòu)函數(shù)函數(shù),當(dāng)動(dòng)態(tài)庫(kù)加載和卸載的時(shí)候,函數(shù)會(huì)被分別執(zhí)行。一個(gè)函數(shù)
    的頭像 發(fā)表于 06-22 09:18 ?2322次閱讀
    Linux共享庫(kù)的<b class='flag-5'>構(gòu)造</b><b class='flag-5'>函數(shù)</b>和析構(gòu)<b class='flag-5'>函數(shù)</b>

    C++詳談拷貝構(gòu)造函數(shù)

    只有單個(gè)形參,而且該形參是對(duì)本類類型對(duì)象的引用(常用const修飾),這樣的構(gòu)造函數(shù)稱為拷貝構(gòu)造函數(shù)??截?b class='flag-5'>構(gòu)造
    的頭像 發(fā)表于 06-29 11:45 ?2131次閱讀
    <b class='flag-5'>C++</b>:<b class='flag-5'>詳談</b>拷貝<b class='flag-5'>構(gòu)造</b><b class='flag-5'>函數(shù)</b>

    C++詳談析構(gòu)函數(shù)的特性和使用

    構(gòu)造函數(shù)功能相反,在對(duì)象被銷毀時(shí),由編譯器自動(dòng)調(diào)用,完成類的一些資源清理和汕尾工作。
    的頭像 發(fā)表于 06-29 11:53 ?2424次閱讀
    <b class='flag-5'>C++</b>:<b class='flag-5'>詳談</b>析構(gòu)<b class='flag-5'>函數(shù)</b>的特性和使用

    C++之拷貝構(gòu)造函數(shù)的淺copy及深copy

    C++編譯器會(huì)默認(rèn)提供構(gòu)造函數(shù);無參構(gòu)造函數(shù)用于定義對(duì)象的默認(rèn)初始化狀態(tài);拷貝構(gòu)造
    的頭像 發(fā)表于 12-24 15:31 ?742次閱讀

    c++構(gòu)造函數(shù)學(xué)習(xí)的總結(jié)(一)

    關(guān)于這個(gè)構(gòu)造函數(shù),簡(jiǎn)單理解就是在一個(gè)類中,有一個(gè)函數(shù),它的函數(shù)名稱和類名同名,而且這個(gè)構(gòu)造函數(shù)
    的頭像 發(fā)表于 12-24 18:06 ?723次閱讀

    EE-128:C++中的DSP:從C++調(diào)用匯編類成員函數(shù)

    EE-128:C++中的DSP:從C++調(diào)用匯編類成員函數(shù)
    發(fā)表于 04-16 17:04 ?2次下載
    EE-128:<b class='flag-5'>C++</b>中的DSP:從<b class='flag-5'>C++</b>調(diào)用匯編類成員<b class='flag-5'>函數(shù)</b>

    C++ C語(yǔ)言函數(shù)查詢電子版下載

    C++ C語(yǔ)言函數(shù)查詢電子版下載
    發(fā)表于 01-18 10:15 ?0次下載

    深度解析C++中的虛函數(shù)

    函數(shù)作為C++的重要特性,讓人又愛又怕,愛它功能強(qiáng)大,但又怕駕馭不好,讓它反咬一口,今天我們用CPU的角度,撕掉語(yǔ)法的偽裝,重新認(rèn)識(shí)一下虛函數(shù)。 虛函數(shù)
    的頭像 發(fā)表于 02-15 11:14 ?827次閱讀
    深度解析<b class='flag-5'>C++</b>中的虛<b class='flag-5'>函數(shù)</b>

    淺析C++執(zhí)行構(gòu)造函數(shù)編程實(shí)例

    C++保證在你調(diào)用delete時(shí),先自動(dòng)調(diào)用析構(gòu)函數(shù)(而我們安排在這個(gè)函數(shù)里面刪除它的法杖、法袍等對(duì)象),再刪除對(duì)象占用的內(nèi)存。
    發(fā)表于 03-03 15:44 ?284次閱讀

    C++基礎(chǔ)知識(shí)之函數(shù)1

    函數(shù)C++ 中的一個(gè)重要概念,它可以讓我們將一段代碼封裝起來,然后在需要的時(shí)候調(diào)用它。C++ 中的函數(shù)有以下幾個(gè)特點(diǎn): * 函數(shù)
    的頭像 發(fā)表于 04-03 10:34 ?566次閱讀

    同樣是函數(shù),在CC++中有什么區(qū)別

    同樣是函數(shù),在 CC++ 中有什么區(qū)別? 第一個(gè)返回值。 C語(yǔ)言的函數(shù)可以不寫返回值類型,編譯器會(huì)默認(rèn)為返回 int。 但是
    的頭像 發(fā)表于 11-29 10:25 ?266次閱讀
    RM新时代网站-首页