卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

c++拷貝構(gòu)造函數(shù) c 什么時(shí)候必須定義構(gòu)造函數(shù),析構(gòu)函數(shù),拷貝構(gòu)造函數(shù)?

c 什么時(shí)候必須定義構(gòu)造函數(shù),析構(gòu)函數(shù),拷貝構(gòu)造函數(shù)?當(dāng)一個(gè)類含有一些數(shù)據(jù)成員,你需要在實(shí)例化類的時(shí)候就初始化這些成員,你就需要自己定義構(gòu)造函數(shù)。例如Person類含有m_strName成員,你在聲

c 什么時(shí)候必須定義構(gòu)造函數(shù),析構(gòu)函數(shù),拷貝構(gòu)造函數(shù)?

當(dāng)一個(gè)類含有一些數(shù)據(jù)成員,你需要在實(shí)例化類的時(shí)候就初始化這些成員,你就需要自己定義構(gòu)造函數(shù)。例如Person類含有m_strName成員,你在聲明該類是就將其賦值 Person myPerson("張三")

對于拷貝構(gòu)造函數(shù),為了防止淺拷貝造成的兩個(gè)對象指向同一內(nèi)存,當(dāng)刪除其中一個(gè)對象后導(dǎo)致另一對象指向內(nèi)容為空的時(shí)候,我們就需要定義自己的拷貝構(gòu)造函數(shù)來進(jìn)行深拷貝。

當(dāng)你的類數(shù)據(jù)成員中使用了動態(tài)分配的內(nèi)存,你就需要定義自己的析構(gòu)函數(shù)來釋放這部分內(nèi)存,防止內(nèi)存泄露。

系統(tǒng)定義的默認(rèn)構(gòu)造函數(shù)和析構(gòu)函數(shù)函數(shù)名和類名相同,如Person類:

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

~Person()析構(gòu)函數(shù)

c ,求三個(gè)長方體的體積,用構(gòu)造函數(shù),析構(gòu)函數(shù),拷貝構(gòu)造函數(shù)?

代碼示例:

先定義一個(gè)長方體類T,定義三個(gè)對象求體積。

#include<iostream>

using namespace std

class T //定義一個(gè)體積類

{

private:

int L //長

int W //寬

int H //高

public:

void set()

void volume()

}

void T::set()

{

cout<<"長:"

cin>>L

cout<<"寬:"

cin>>W

cout<<"高:"

cin>>H

}

void T::volume()

{

cout<<"體積:"<<(L*W*H)<<endl

}

int main()

{

T t1,t2,t3

t1.set()

t1.volume()

t2.set()

t2.volume()

t3.set()

t3.volume()

}

何時(shí)調(diào)用構(gòu)造函數(shù),復(fù)制構(gòu)造函數(shù),析構(gòu)函數(shù)?

構(gòu)造函數(shù) 在對象生成時(shí)調(diào)用.可能是在定義的時(shí)候, 或者new分配的時(shí)候. 調(diào)用哪個(gè)構(gòu)造函數(shù) 由構(gòu)造參數(shù)決定. 如果構(gòu)造參數(shù)是另一個(gè)同類對象,那就是復(fù)制構(gòu)造函數(shù). 如果無參 那就是無參構(gòu)造或者默認(rèn)構(gòu)造. 而析構(gòu)函數(shù)是在對象生命周期結(jié)束, 即釋放時(shí)調(diào)用. new出來的對象會在delete時(shí)調(diào)用 局部變量 在退出作用域時(shí)調(diào)用. 全局變量和靜態(tài)局部變量在程序退出時(shí)調(diào)用.