无码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ó)家法律
敦煌市| 类乌齐县| 新乡市| 肇东市| 多伦县| 桃园县| 沽源县| 卢氏县| 白山市| 门源| 称多县| 阿拉善盟| 临泽县| 和林格尔县| 霞浦县| 濉溪县| 库尔勒市| 云浮市| 海城市| 咸阳市| 东城区| 东方市| 塔河县| 达日县| 定襄县| 苍溪县| 侯马市| 大悟县| 嘉峪关市| 漾濞| 永安市| 荔波县| 津南区| 蒙城县| 广元市| 墨玉县| 敖汉旗| 遂平县| 库伦旗| 绩溪县| 民权县|