已采納回答 / 慕粉1657261252
訪(fǎng)問(wèn)對(duì)象的數(shù)據(jù)成員和函數(shù)成員的過(guò)程沒(méi)有區(qū)別,都是一樣的。主要區(qū)別在對(duì)象空間的釋放上面,通過(guò)棧訪(fǎng)問(wèn)的對(duì)象,在函數(shù)調(diào)用結(jié)束后會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù)釋放對(duì)象的空間,而通過(guò)堆訪(fǎng)問(wèn)的對(duì)象,在函數(shù)結(jié)束后不會(huì)釋放所占用的空間,因?yàn)槎阎袃?nèi)容一定是new或malloc出來(lái)的,只有通過(guò)delete、free或程序結(jié)束時(shí)才釋放
2017-10-03
已采納回答 / onemoo
從語(yǔ)法上說(shuō):函數(shù)只要聲明了就可以使用(調(diào)用它),所以 cpp 文件只要 include 相應(yīng)的函數(shù)頭文件(頭文件中就是函數(shù)聲明)就可以使用這個(gè)函數(shù),并不需要知道函數(shù)的實(shí)現(xiàn)。那么你是好奇“為什么代碼中沒(méi)有實(shí)現(xiàn)也可調(diào)用呢”? 這需要你明白什么是“編譯”和“鏈接”:函數(shù)還是需要實(shí)現(xiàn)的,不過(guò)那是實(shí)現(xiàn)在其他 cpp 文件中的。像這樣由多個(gè) cpp 構(gòu)成的程序,其中每個(gè) cpp 文件都是被編譯器單獨(dú)編譯的。每一個(gè) cpp 文件被稱(chēng)為一個(gè)“編譯單元”。 注意編譯器無(wú)需得知函數(shù)實(shí)現(xiàn)即可編譯函數(shù)調(diào)用,它只要知道函數(shù)聲明(需...
2017-09-17
最新回答 / 楚凡_Elliot
你是問(wèn)為什么在 t.teach() 和 t.getAge 之間有一個(gè) << " "<<嗎?那個(gè)只是為了讓輸出的數(shù)據(jù)之間有一個(gè)空格,如果沒(méi)有空格的話(huà),輸出會(huì)連在一起。拙見(jiàn)。
2017-08-31
最新回答 / 丨丶老唐
從堆中的對(duì)象成員訪(fǎng)問(wèn)申請(qǐng)的是str這個(gè)指針的內(nèi)存空間,結(jié)束的時(shí)候需要釋放str這個(gè)指針的內(nèi)存空間。你打的shili那些只是一個(gè)對(duì)象,網(wǎng)頁(yè)的編譯器可能識(shí)別不太完全
2017-08-31
最新回答 / weixin_慕雪0498266
在Teacher.h文件中已經(jīng)聲明了 默認(rèn)構(gòu)造函數(shù)Teacher(string name,int age),因此在實(shí)例化對(duì)象時(shí)會(huì)調(diào)用該默認(rèn)構(gòu)造函數(shù),打印出Teacher(string name,int age);如果沒(méi)有含參數(shù)的默認(rèn)構(gòu)造函數(shù),系統(tǒng)會(huì)自動(dòng)調(diào)用無(wú)參數(shù)的默認(rèn)構(gòu)造函數(shù)Teacher()
2017-08-27