struct結(jié)構(gòu)體是從c到c++的一個(gè)過渡,struct結(jié)構(gòu)體本質(zhì)是C語言的東西,本身無所謂構(gòu)造函數(shù),當(dāng)然就更沒有默認(rèn)的構(gòu)造函數(shù)。當(dāng)我們采用面向?qū)ο蠓椒ň幊?,寫一個(gè)類的時(shí)候,其本身有一個(gè)默認(rèn)的構(gòu)造函數(shù)。
創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為友誼企業(yè)提供專業(yè)的做網(wǎng)站、成都做網(wǎng)站,友誼網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
結(jié)構(gòu)的副本由編譯器自動創(chuàng)建和銷毀,因此不需要使用默認(rèn)構(gòu)造函數(shù)和析構(gòu)函數(shù)。
聲明一個(gè)變量,如果沒有賦值就使用(編譯器會給其一個(gè)對應(yīng)類型的默認(rèn)值,但這不是賦值),那么就會出錯,通常情況下編譯器可以幫助發(fā)現(xiàn)問題(使用未賦值的變量編譯通不過)。構(gòu)造函數(shù)是用來初始化類、結(jié)構(gòu)成員變量的。
C++中結(jié)構(gòu)體和類基本相同。Node add = new Node;是正確的。所謂“沒有構(gòu)造函數(shù)”,只是你沒有在代碼里顯式指定而已,其實(shí)編譯器會為你加上默認(rèn)的構(gòu)造函數(shù)和析構(gòu)函數(shù)。所以實(shí)際上它仍然是有構(gòu)造函數(shù)的。
struct C : B{}; //public繼承 2)struct作為數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)體,它默認(rèn)的數(shù)據(jù)訪問控制是public的,而class作為對象的實(shí)現(xiàn)體,它默認(rèn)的成員變量訪問控制是private的。
第一個(gè)是默認(rèn)的構(gòu)造函數(shù),默認(rèn)的構(gòu)造函數(shù)是無參數(shù)的,第二個(gè)是含有參數(shù)的構(gòu)造函數(shù)。至于要不要每次都要這樣寫,這要看你的需要了。如果你會用到默認(rèn)的構(gòu)造函數(shù)的,就要寫,如果用不到的話,可以不寫。
1、}};class C{float z;A a1;//這里定義一個(gè)A類的對象a1, 沒有帶參數(shù),所以會報(bào)錯,在A中加一個(gè)不帶參的構(gòu)造函數(shù)就好了。
2、不一定的,如果你自己實(shí)現(xiàn)了構(gòu)造函數(shù),就沒有,如果沒有實(shí)現(xiàn)構(gòu)造函數(shù),系統(tǒng)會默認(rèn)加上一個(gè)無參數(shù)的構(gòu)造函數(shù)。應(yīng)該說c++的類必須有構(gòu)造函數(shù)。
3、系統(tǒng)默認(rèn)的構(gòu)造函數(shù)一般是直接用0填充這個(gè)對象所占用的內(nèi)存。如果你需要在這個(gè)對象一定義的時(shí)候就給它的某個(gè)變量賦值,或是給對象中的某個(gè)指針分配一段內(nèi)存空間,或是別的什么特殊功能,你就需要用自己定義的構(gòu)造函數(shù)了。
4、這句話:struct結(jié)構(gòu)體本質(zhì)是C語言的東西,本身無所謂構(gòu)造函數(shù),當(dāng)然就更沒有默認(rèn)的構(gòu)造函數(shù)。
構(gòu)造函數(shù)是類的一個(gè)特殊方法,這個(gè)方法用來生成實(shí)例時(shí)由系統(tǒng)自動調(diào)用,程序員無法直接調(diào)用。構(gòu)造函數(shù)方法名同類名相同且參數(shù)為空。
構(gòu)造函數(shù)通常用于在實(shí)例化對象時(shí)自動對內(nèi)部數(shù)據(jù)成員初始化,設(shè)置初始值、分配內(nèi)存空間等。而析構(gòu)函數(shù)則用于刪除對象時(shí)做收尾工作,比如釋放申請的空間等。用不用就看你需不需要了。
構(gòu)造函數(shù)是一種特殊的方法,主要用來在創(chuàng)建對象時(shí)初始化對象,即為對象成員變量賦初始值。
構(gòu)造函數(shù)的作用是使類的成員變量有合適的初值,調(diào)用是時(shí)機(jī)是在創(chuàng)建該類的對象的時(shí)候,由編譯器自動調(diào)用??截悩?gòu)造函數(shù) 是指類的對象在創(chuàng)建的時(shí)候,能使用已有的對象之間初始化它。
其他類中派生出來的,可以用{}來初始化。(以后再講解)內(nèi)聯(lián)函數(shù) 內(nèi)聯(lián)函數(shù)和普通函數(shù)的區(qū)別是:內(nèi)聯(lián)函數(shù)是在編譯過程中展開的。通常內(nèi)聯(lián)函 數(shù)必須簡短。