第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用new與without實例化對象之間的區(qū)別是什么

使用new與without實例化對象之間的區(qū)別是什么

C++
慕無忌1623718 2019-09-19 15:16:51
在C ++中,除了動態(tài)內(nèi)存分配之外,以下兩行代碼之間是否存在功能差異:Time t (12, 0, 0); //t is a Time objectTime* t = new Time(12, 0, 0);//t is a pointer to a dynamically allocated Time object我當(dāng)然假設(shè)定義了一個Time(int,int,int)ctor。我也意識到在第二種情況下,t將需要刪除,因為它是在堆上分配的。還有其他區(qū)別嗎?
查看完整描述

3 回答

?
FFIVE

TA貢獻1797條經(jīng)驗 獲得超6個贊

這條線:


Time t (12, 0, 0);

... Time在本地范圍內(nèi)分配一個類型的變量,通常在堆棧上,當(dāng)它的作用域結(jié)束時將被銷毀。


相比之下:


Time* t = new Time(12, 0, 0);

...通過調(diào)用::operator new()或分配一塊內(nèi)存Time::operator new(),然后Time::Time()使用thisset 調(diào)用該內(nèi)存塊中的一個地址(并且還作為結(jié)果返回new),然后存儲在該內(nèi)存塊中t。如你所知,這是一般的堆(默認(rèn))完成,并要求您delete在以后的節(jié)目,而指針t則一般存儲在堆棧上。


查看完整回答
反對 回復(fù) 2019-09-19
?
搖曳的薔薇

TA貢獻1793條經(jīng)驗 獲得超6個贊

另一個明顯的區(qū)別是訪問t的變量和方法。


Time t (12, 0, 0);

t.GetTime();


Time* t = new Time(12, 0, 0);

t->GetTime();


查看完整回答
反對 回復(fù) 2019-09-19
?
郎朗坤

TA貢獻1921條經(jīng)驗 獲得超9個贊

我想你已經(jīng)明白了所有的不同之處。假設(shè)你很清楚通過指針和變量訪問t成員的語法差異(好吧,指針也是一個變量,但我想你明白我的意思)。并假設(shè)您在將t傳遞給函數(shù)時知道按值調(diào)用和按引用調(diào)用的區(qū)別。而且我認(rèn)為你也明白如果你將t分配給另一個變量并通過其他變量進行更改會發(fā)生什么。結(jié)果將根據(jù)t是否為指針而不同。


查看完整回答
反對 回復(fù) 2019-09-19
  • 3 回答
  • 0 關(guān)注
  • 478 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號