1樓:砍侃看
new和不new的區別是型別分配的記憶體位置。
不new的型別物件記憶體分配是在棧區,這個地方比較小,一般只有幾m的空間。一般對於內建型別比如int、char等如果需要的記憶體不多的情況下,可以不用new。這時候的記憶體會在當前函式結束後自動釋放。
需要new的時候一般對於複雜型別,這時候記憶體分配是在堆區。比如自定義的類型別,或者需要大量記憶體空間的時候,比如你需要乙個10000個int的陣列,這時候你就需要new一下了。new的物件記憶體是需要我們手動釋放的,否則會造成記憶體洩露。
以上是我的個人理解,僅供參考。
2樓:匿名使用者
建立不在棧上的新物件都應該用new
c++中 new 在什麼時候用?? 為什麼 class c = new class報錯
3樓:匿名使用者
1>class c=new class
new class 表示在堆疊中建立乙個class類變數,而要訪問這個變數,必須通過指標來訪問,因此
應該改為:class *c=new class;
2>請高手解釋下 class *c = new class ; class *c ; class c ;
第乙個是在堆疊中建立class型別的變數並用指向class類變數的指標指向它
第二個是建立乙個指向class型別變數的指標
第三個是建立class型別的變數
3>建議在類、變數、函式名等命名時盡量不要與關鍵字相似,最好去找一些命名規則來看一下,其實命名是很有講究的,像你所提問題中的class最好改為cclass這是因為類的命名規則一般前面都會加乙個「c」以表示這是乙個類。
4樓:匿名使用者
new返回的是乙個
指標,所以必須用指標接收
class *c = new class ; // 定義乙個class類的指標c,建立乙個class類物件,並賦給這個指標
class *c ; // 定義乙個class類指標c
class c ; // 定義乙個class類物件
物件呼叫屬性用.操作符,指標呼叫屬性用->操作符,第三種在實際應用中不常用,因為涉及到多台繼承等問題都用指標解決。
5樓:追夢人奮鬥著
new主要為指標分配記憶體,不能亂用,類建立時不需要new的,跟純粹的物件導向的語言不同。比如:
int * a=new int;
在連結串列中經常用到new為新建的struct或class非配記憶體空間,並用指標接收
6樓:匿名使用者
new函式是返回的是乙個指標,當然必需賦值給乙個指標.
c++什麼時候一定要用new分配堆記憶體
7樓:砍侃看
一是需要一塊大記憶體的時候,一般棧的大小在8m左右(具體看編譯器,不過一般都不會太大),所以需要大記憶體時需要new。
二是給全域性或作用域較大的指標分配物件時。
三是一般自定義的類物件用new,也不是必須用new。
以上是我個人的體會,不一定很準確,僅作參考。
8樓:幻夢·人生
new是c++語法所規定的堆分配空間函式。
malloc是c語法所規定的對分配空間函式。
差別在於,c++是物件導向進行程式設計的。由於物件是包含建構函式的,在建立物件時,應當呼叫其建構函式,對其內部的資料進行初始化。new可以在分配空間的同時呼叫建構函式對此段空間進行初始化。
而malloc只能夠分配一段空間,不能呼叫建構函式。
所以在c++語言的開發中,要求使用new操作符進行堆空間的分配。
C語言中,什麼時候用float,什麼時候用double?麻煩順便舉個例子,謝謝
一般用float就可以滿足要求,float和double都用來定義浮點數,也就是小數,兩者就是有效位數不同,float為7 8位,double是15 16位,看你需要什麼精確度的數了 再不清楚的話,就隨便找個數,分別以float和double格式輸出,看看輸出的數有什麼區別就懂了 要看數的大小了,d...
什麼時候用這個符號,C語言什麼時候用這個符號
表達特殊含義或引用時 要求必須在英文環境下使用的字元,比如程式設計 在excel中什麼時候用符號 符號是單元格絕對引用符號,在excel中寫公式或者是寫函式的時候會運用到。具體運用如下 1 開啟excel 要計算99乘法表。2 在第乙個單元格輸入b 1,注意1前面的 符號,說明第一行鎖定,不會變。3...
holiday什麼時候是複數,什麼時候不用加S
其單數形式指包括含一天或一次的假期,複數形式指一次以上或一天以上的假期。holiday的基本意思是 假期 指源於宗教的 節日,假日 也可指不用去上班 上學等的 休假日 假期 還可指 出外度假時期 其單數形式指包括含一天或一次的假期,複數形式指一次以上或一天以上的假期。holiday作 休假期 解時常...