最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
西乌珠穆沁旗| 师宗县| 峨边| 青浦区| 繁峙县| 阿合奇县| 电白县| 卢氏县| 依安县| 大化| 郧西县| 迭部县| 新乡市| 嘉祥县| 铜鼓县| 涪陵区| 商丘市| 昭苏县| 柳江县| 青川县| 普兰店市| 绥滨县| 安新县| 怀宁县| 北川| 柳江县| 平和县| 漳州市| 苗栗县| 农安县| 吉安县| 昔阳县| 武威市| 贞丰县| 蛟河市| 吴川市| 安吉县| 蒙山县| 萨嘎县| 元谋县| 浦北县|