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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

對象成員指針能不能從棧上實體化,

視頻中都是指導(dǎo)從堆上實體化,如對象成員指針在堆上實體化對象成員,main函數(shù)中在堆上實體化Line 類。

那么有沒有什么操作 比如在Line 中的構(gòu)造函數(shù)中把對象成員指針在 棧上 實體化呢?


正在回答

3 回答

Node *p;

Node m(3);

*p = m(3); 賦值無法通過

p = &m(3); 賦值可以通過

?這是為什么

Node 是類

上面搞錯了

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

qq_慕虎1144658

m(3)意思是把3傳入Node類的帶參構(gòu)造函數(shù)里面,這不是一個值,你怎么可能拿來賦值?要么你那個Node類 例如Node(int a){b=a;}(b是你類里面定義的一個變量) m(3)就相當(dāng)于你把 a=3傳進(jìn)去了 你想訪問你可以寫個get函數(shù)把b return出來,在用p->get() 你這個完全就是在瞎搞嘛 要是你想這么用也可以 看圖
2019-03-01 回復(fù) 有任何疑惑可以回復(fù)我~
#2

qq_慕虎1144658

#include <stdio.h> #include <string> #include <stdlib.h> int main(){ int *p=NULL; int m(3); p=&m; *p=m; }
2019-03-01 回復(fù) 有任何疑惑可以回復(fù)我~

Node *p;

Node m(3);

*p = m(3); 賦值無法通過

p = &m(3); 賦值無法通過

?這是為什么

Node 是類

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕斯6434274 提問者

卡在這里想了一天了
2018-10-26 回復(fù) 有任何疑惑可以回復(fù)我~

只有使用new的指針,所指對象是在堆上。不使用new分配內(nèi)存的都是在棧上。

你要非在棧上實體化,先創(chuàng)建對象成員,然后用指針指向成員地址就行了。


注意這樣一個問題:Node?*p;和?Node?*p?=?new?Node;的區(qū)別是什么?

都是node類型的指針,前者也就是node *p程序結(jié)束后會自動刪除(棧上),后者new node不會自動刪除,會用到delete函數(shù)刪除(堆上)。

不自動刪除的話,可以自己控制,方便在其他地方調(diào)用,在合適的時間再手動刪除。


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
C++遠(yuǎn)征之封裝篇(下)
  • 參與學(xué)習(xí)       70903    人
  • 解答問題       534    個

封裝--面向?qū)ο笕筇卣髦?,通過案例讓C++所學(xué)知識融會貫通

進(jìn)入課程

對象成員指針能不能從棧上實體化,

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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