亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

向堆中申請空間的問題?

http://img1.sycdn.imooc.com//58c69cba0001af9606550257.jpg

這里定義了一個指針,為什么申請空間的時候就可以是 m_pName = new char[20];

而之前從堆中實例化對象都是int *p = new int[1000]; ? (等號左邊p帶*號)

正在回答

6 回答

都定義過了。。不能在定義。。不懂的,,看下指針的注意事項!

0 回復 有任何疑惑可以回復我~

因為后面定義數據成員時已定義了char *m_pName;所以在構造函數中沒有必要寫成char *m_pName=new char[20];如果有幫助希望采納

2 回復 有任何疑惑可以回復我~

聲明和定義(賦值)的區別;

int?*p?=?new?int[100];?//聲明指針變量p?,并且申請空間?100*int(賦值)
int?*p?;???????????????//聲明指針變量p
p?=?new?int?[100];?????//申請空間?100*int,首地址存入?指針變量p里面(賦值)
...
...賦值。
cout?<<?p?<<?endl;?????//輸出p存儲的地址??的內容,即int?[100]內容
cout?<<?*p?<<?endl;????//輸出p存儲的地址??的計算機內部空間

打字不易,如果有幫助希望采納;

0 回復 有任何疑惑可以回復我~
#1

紅塵太簡單

指針是為了存地址而生的
2018-07-24 回復 有任何疑惑可以回復我~

m_pName等價于char *xxxx::m_pName,xxxx為類名。因此,這是隱含有一個“*”。

0 回復 有任何疑惑可以回復我~

數據類型問題,從“char *”轉換為“char”是違法的。

0 回復 有任何疑惑可以回復我~
#1

Tricia0127 提問者

那如果是別的類型,比如Int double 要*么
2017-03-13 回復 有任何疑惑可以回復我~

m_pName也是指針,已在類內定義。

private:

? ? ? ? char *m_pName;

public:

? ? ? ? Student()

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? m_pName=new ?char[20]; ?//已定義為指針

? ? ? ? ? ? ? ? ? }

?

0 回復 有任何疑惑可以回復我~
#1

Tricia0127 提問者

為啥不加*號呢
2017-03-13 回復 有任何疑惑可以回復我~
#2

木_瓜

因為已經在下面義了,所以直接使用
2018-09-04 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之封裝篇(上)
  • 參與學習       103391    人
  • 解答問題       732    個

封裝--面向對象的基石,本教程力求幫助小伙伴們即學即會

進入課程

向堆中申請空間的問題?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號