无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【C++primer】構(gòu)造函數(shù)

2023-06-24 12:08 作者:我是信信信  | 我要投稿

?#include <iostream>

using namespace std;

class Sales_data

{

public:

? ? Sales_data(std::string s) : bookNo(s)

? ? {

? ? } // 自定義構(gòu)造函數(shù)

? ? string bookNo;

? ? string str;

};


int main()

{

? ? Sales_data data2("hello");

}

調(diào)用構(gòu)造函數(shù),僅僅只是初始化了bookNo,但是str并沒有被初始化,但是通過單步調(diào)試,str被默認(rèn)初始化為空字符串(“”),也就是說:在創(chuàng)建data2對(duì)象的過程中,間接地調(diào)用了兩個(gè)不同類型的構(gòu)造函數(shù):一個(gè)是Sales_data的構(gòu)造函數(shù),另一個(gè)是std::string的默認(rèn)構(gòu)造函數(shù)。


那么就有個(gè)問題:既然調(diào)用了自己定義的構(gòu)造函數(shù)(Sales_data(std::string s) : bookNo(s)

),就不可能再調(diào)用默認(rèn)構(gòu)造函數(shù),這豈不是矛盾?


原因是:這是兩個(gè)不同類型的構(gòu)造函數(shù)。


當(dāng)我們創(chuàng)建一個(gè)Sales_data對(duì)象,比如Sales_data data2("hello");,我們實(shí)際上在調(diào)用Sales_data類的一個(gè)構(gòu)造函數(shù),那么就不能再調(diào)用Sales_data類的默認(rèn)構(gòu)造函數(shù),但是并不妨礙我們調(diào)用std::string的默認(rèn)構(gòu)造函數(shù)來初始化str


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

?Sales_data(std::istream& is)

?{? ? ? ? ?read(is, *this);

?}

然后調(diào)用構(gòu)造函數(shù)構(gòu)造對(duì)象:

Sales_data total(cin);


this指針只能存在于member function中,當(dāng)調(diào)用構(gòu)造函數(shù)構(gòu)造對(duì)象(初始化對(duì)象)的時(shí)候,可以認(rèn)為是構(gòu)造函數(shù)正在作用于類對(duì)象(total),然后會(huì)把total的地址,即&total傳遞給this指針,所以this指向了total對(duì)象。


【C++primer】構(gòu)造函數(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
邻水| 明光市| 泽库县| 甘谷县| 通山县| 土默特左旗| 汉沽区| 海兴县| 靖州| 兴和县| 侯马市| 安溪县| 岱山县| 宝清县| 曲周县| 聂荣县| 西充县| 大冶市| 会昌县| 梅河口市| 昌都县| 兴宁市| 调兵山市| 永清县| 云浮市| 舒城县| 富川| 龙门县| 天水市| 安阳县| 河北省| 巴东县| 新竹县| 莱芜市| 乌兰县| 郯城县| 平凉市| 镇安县| 东海县| 合江县| 武安市|