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

C++構(gòu)造函數(shù)初始化列表的實(shí)現(xiàn)詳解

 更新時(shí)間:2022年09月09日 10:29:16   作者:AKA.瞳源治  
構(gòu)造函數(shù)主要作用在于創(chuàng)建對(duì)象時(shí)為對(duì)象的成員屬性賦值,構(gòu)造函數(shù)由編譯器自動(dòng)調(diào)用,無須手動(dòng)調(diào)用;析構(gòu)函數(shù)主要作用在于對(duì)象銷毀前系統(tǒng)自動(dòng)調(diào)用,執(zhí)行一 些清理工作

1.前言

初始化就是給變量一個(gè)初始值。 初始化的目的是為了讓變量有值,防止使用時(shí)出現(xiàn)異常。

在構(gòu)造函數(shù)中,有一項(xiàng)重要功能就是對(duì)成員變量進(jìn)行初始化,一般我們采用兩個(gè)方法:

對(duì)成員變量賦值和采用初始化列表

2.初始化列表

在這之前我們來觀察一下樣例看這兩者之間有什么區(qū)別:

class Date
{
public:
	Date(int year = 1900, int month = 1, int date = 1)
	{
		_year = year;
		_month = month;
		_date = date;
	}//賦值
    Date(int year = 1900, int month = 1, int date = 1)
        :_year(year)
        ,_month(month)
        ,_date(date)
        {}//初始化列表
}

顯然的,初始化列表是以冒號(hào)開始,然后緊跟著的是以逗號(hào)為分隔符的數(shù)據(jù)成員列表,每個(gè)數(shù)據(jù)成員后面都有一個(gè)括號(hào),括號(hào)中的是該成員變量的初始值或表達(dá)式。其中語句:

_year(year),_month(month),_date(date)

其實(shí)就是相當(dāng)于函數(shù)體內(nèi)部的:

_year = year;_month = month;_date = date;

雖然說效率上沒有什么很大區(qū)別,但使書寫更加方便,尤其在成員變量較多時(shí)優(yōu)勢(shì)更加突出

3.注意事項(xiàng)

1.成員變量的初始化順序與初始化列表中列出的變量的順序無關(guān),它只與成員變量在類中聲明的順序有關(guān)。

如代碼所示:

#include<iostream>
using namespace std;
class A
{
public:
	A(int a)
		:_a1(a)
		, _a2(_a1)
	{}
	void Print()
	{
		cout << _a1 << " " << _a2 << endl;
	}
private:
	int _a2;
	int _a1;
};
int main()
{
	A aa(1);
	aa.Print();
}

結(jié)果:

出現(xiàn)上面結(jié)果,是因?yàn)槲覀冊(cè)陬惖穆暶髦械捻樞驔Q定了成員變量的賦值,所以在 A類 中先讓 _a2 賦值,然而 _a1還未賦值,所以_a2 的值為一個(gè)奇怪的數(shù)字。

2.一般類中我們還需要定義某些特殊成員變量,初始化 這些成員變量的唯一方法就是使用初始化列表。

如代碼所示:

class B {
private:
	int& _b;
	const int _len;
	A _c;
	int* _a;
public:
	//B(int len, int b)
	//	: _len(len)
	//	,_b(b)
	//	,_c(0)
	//{
	//	_a = new int[len];
	//}
	B(int len, int b)
	{
		_len = len;
		_c = 0;
		_b = b;
		_a = new int[len];
	}
};

該代碼中如果用賦值來初始化成員變量的話,會(huì)報(bào)出以下錯(cuò)誤:

所以,當(dāng)類中包含了:引用成員變量;const成員變量;自定義類型的成員變量時(shí),必須將這些成員放在初始化列表中進(jìn)行初始化。

結(jié)果:

到此這篇關(guān)于C++構(gòu)造函數(shù)初始化列表的實(shí)現(xiàn)詳解的文章就介紹到這了,更多相關(guān)C++構(gòu)造函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 簡(jiǎn)單談?wù)凜++ 頭文件系列之(iosfwd)

    簡(jiǎn)單談?wù)凜++ 頭文件系列之(iosfwd)

    本文給大家分享的是小編關(guān)于頭文件系列的(iosfwd)的簡(jiǎn)單講解,所謂iosfwd,其實(shí)就是“input output stream forward”,下面我們來詳細(xì)看看
    2017-02-02
  • C++實(shí)現(xiàn)有向圖的鄰接表表示

    C++實(shí)現(xiàn)有向圖的鄰接表表示

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)有向圖的鄰接表表示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語言基礎(chǔ)知識(shí)變量的作用域和存儲(chǔ)方式詳細(xì)介紹

    C語言基礎(chǔ)知識(shí)變量的作用域和存儲(chǔ)方式詳細(xì)介紹

    這篇文章主要介紹了C語言基礎(chǔ)知識(shí)變量的作用域和存儲(chǔ)方式詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • 詳細(xì)聊聊c語言中的緩沖區(qū)問題

    詳細(xì)聊聊c語言中的緩沖區(qū)問題

    緩沖區(qū)又稱為緩存,它是內(nèi)存空間的一部分,也就是說在內(nèi)存空間中預(yù)留了一定的存儲(chǔ)空間,這些存儲(chǔ)空間用來緩沖輸入或輸出的數(shù)據(jù),這部分預(yù)留的空間就叫做緩沖區(qū),這篇文章主要給大家介紹了關(guān)于c語言中緩沖區(qū)問題的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • C語言按關(guān)鍵字搜索文件夾中文件的方法

    C語言按關(guān)鍵字搜索文件夾中文件的方法

    這篇文章主要介紹了C語言按關(guān)鍵字搜索文件夾中文件的方法,涉及C語言文件操作及字符串查找的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • C語言之實(shí)現(xiàn)輾轉(zhuǎn)相除法的兩種方式

    C語言之實(shí)現(xiàn)輾轉(zhuǎn)相除法的兩種方式

    這篇文章主要介紹了C語言之實(shí)現(xiàn)輾轉(zhuǎn)相除法的兩種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++解析obj模型文件方法介紹

    C++解析obj模型文件方法介紹

    由于本人打算使用Assimp來加載模型,這里記錄一下tinyobjloader庫(kù)的使用。之前也研究過fbxsdk,除了骨骼動(dòng)畫暫未讀取外,代碼自認(rèn)為還算可靠
    2022-09-09
  • qt獲取當(dāng)前時(shí)間(QDateTime、QTime、QDate)

    qt獲取當(dāng)前時(shí)間(QDateTime、QTime、QDate)

    本文主要介紹了qt獲取當(dāng)前時(shí)間(QDateTime、QTime、QDate),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • C++日志庫(kù)log4cplus的使用詳解

    C++日志庫(kù)log4cplus的使用詳解

    C++實(shí)現(xiàn)的log4cplus日志庫(kù)是一種易于使用的C?++日志記錄API,可提供線程安全,靈活且任意粒度的日志管理和配置控制。這篇文章就來和大家講講log4cplus的使用吧
    2023-03-03
  • iOS鎖屏音頻播放控制及音頻信息設(shè)置

    iOS鎖屏音頻播放控制及音頻信息設(shè)置

    這篇文章主要為大家詳細(xì)介紹了iOS鎖屏音頻播放控制及音頻信息設(shè)置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評(píng)論

临洮县| 洞口县| 伽师县| 保康县| 交城县| 上思县| 库车县| 津南区| 寿宁县| 乐陵市| 永福县| 永宁县| 台东市| 离岛区| 昌都县| 内丘县| 新晃| 大方县| 广汉市| 八宿县| 平乐县| 永泰县| 白城市| 黄骅市| 博湖县| 年辖:市辖区| 万源市| 襄城县| 辽中县| 榆林市| 汤阴县| 和林格尔县| 枣强县| 小金县| 高碑店市| 临高县| 丰宁| 星子县| 商洛市| 甘南县| 美姑县|