1樓:育知同創教育
delete or delete?問題沒說清楚啊 如果是上面所述 delete主要是用來釋放陣列 特別是自定義陣列 常常和new配合使用
c++中delete和delete的區別
2樓:千鋒教育
c++中delete和delete的區別如下:
在**用 new 分配的單個物件的記憶體空間的時候用 delete,**用 new 分配的一組物件的記憶體空間的時候用 delete。
程式舉例說明:
#include ;
using namespace std;
class t
~t()
};int main()
基本型別的物件沒有解構函式,所以**基本型別組成的陣列空間用 delete 和 delete 都是應該可以的;但是對於類物件陣列,只能用 delete。對於 new 的單個物件,只能用 delete 不能用 delete **空間。
所以一個簡單的使用原則就是:new 和 delete、new 和 delete 對應使用。
c#中virtual和abstract的區別
3樓:笑喘是病得抽
virtual和abstract都是用來修飾父類的,通過覆蓋父類的定義,讓子類重新定義。
(1)virtual修飾的方法必須有實現(哪怕是僅僅新增一對大括號),而abstract修飾的方法一定不能實現。
(2)virtual可以被子類重寫,而abstract必須被子類重寫。
(3)如果類成員被abstract修飾,則該類前必須新增abstract,因為只有抽象類才可以有抽象方法。
(4)無法建立abstract類的例項,只能被繼承無法例項化。
c++中delete和delete的區別
4樓:du知道君
你是不是問 delete 和 delete 的區別? 一個是釋放單個物體 比如 : class a;...
a *p=new a(); 一個是釋放物體陣列 a *p=new a[50]; delete a;
c++中delete和delete的區別
5樓:千鋒教育
delete 是刪除一個變數並且釋放其分配的記憶體.一般用在非內部資料型別的物件上.
delete 刪除一個陣列,釋放分配的記憶體.
上面是運算子.
free() 是c++/c語言的標準庫函式,不能用在非內部資料型別的物件上,滿足不了動態物件的要求.
6樓:匿名使用者
一直對c++中的delete和delete的區別不甚瞭解,今天遇到了,上網查了一下,得出了結論。做個備份,以免丟失。
c++告訴我們在**用 new 分配的單個物件的記憶體空間的時候用 delete,**用 new 分配的一組物件的記憶體空間的時候用 delete。
關於 new 和 delete,其中又分為兩種情況:(1) 為基本資料型別分配和**空間;(2) 為自定義型別分配和**空間。
請看下面的程式。
#include ;
using namespace std;
class t
~t()
};int main()
大家可以自己執行這個程式,看一看 delete p1 和 delete p1 的不同結果,我就不在這裡貼執行結果了。
從執行結果中我們可以看出,delete p1 在**空間的過程中,只有 p1[0] 這個物件呼叫了解構函式,其它物件如 p1[1]、p1[2] 等都沒有呼叫自身的解構函式,這就是問題的癥結所在。如果用 delete,則在**空間之前所有物件都會首先呼叫自己的解構函式。
基本型別的物件沒有解構函式,所以**基本型別組成的陣列空間用 delete 和 delete 都是應該可以的;但是對於類物件陣列,只能用 delete。對於 new 的單個物件,只能用 delete 不能用 delete **空間。
所以一個簡單的使用原則就是:new 和 delete、new 和 delete 對應使用。
7樓:匿名使用者
是說delete和delete的區別麼?
前者銷燬的只是指標指向的一個物件,後者是刪除一組(一個陣列)
c++中delete和delete的區別
8樓:千鋒教育
c++中delete和delete的區別從例項中比較如下:
#include ;
using namespace std;
class t
~t()
};int main()
delete p1 在**空間的過程中,只有 p1[0] 這個物件呼叫了解構函式,其它物件如 p1[1]、p1[2] 等都沒有呼叫自身的解構函式,這就是問題的癥結所在。如果用 delete,則在**空間之前所有物件都會首先呼叫自己的解構函式。
基本型別的物件沒有解構函式,所以**基本型別組成的陣列空間用 delete 和 delete 都是應該可以的;但是對於類物件陣列,只能用 delete。對於 new 的單個物件,只能用 delete 不能用 delete **空間。
所以一個簡單的使用原則就是:new 和 delete、new 和 delete 對應使用。
9樓:福喜
c++告訴我們在**用 new 分配的單個物件的記憶體空間的時候用 delete,**用 new 分配的一組物件的記憶體空間的時候用 delete。
很多人注意到了這個問題,但是卻不清楚為什麼要這樣做,不這樣做行不行。
關於 new 和 delete,其中又分為兩種情況:(1) 為基本資料型別分配和**空間;(2) 為自定義型別分配和**空間。
對於 (1),毫無疑問 delete 和 delete 是等同的。但是對於 (2),情況就發生了變化。
delete p1 在**空間的過程中,只有 p1[0] 這個物件呼叫了解構函式,其它物件如 p1[1]、p1 [2] 等都沒有呼叫自身的解構函式,這就是問題的癥結所在。如果用 delete,則在**空間之前所有物件都會首先呼叫自己的解構函式。
基本型別的物件沒有解構函式,所以**基本型別組成的陣列空間用 delete 和 delete 都是應該可以的;但是對於類物件陣列,只能用 delete。對於 new 的單個物件,只能用 delete 不能用 delete **空間。
所以一個簡單的使用就是:new 和 delete、new 和 delete 對應使用。
j**a中的==與c#中的==有什麼區別
c和j**a中陣列的區別
c 中的state怎樣使用,c語言中state是什麼意思
作用 允許一個物件在其內部狀態改變時改變它的行為.state模式的定義 不同的狀態,不同的行為 或者說,每個狀態有著相應的行為.何時使用?state模式在實際使用中比較多,適合 狀態的切換 因為我們經常會使用if else if else 進行狀態切換,如果針對狀態的這樣判斷切換反覆出現,就要聯想 ...
c中指向函式的指標初始化和使用,請教C 中函式型指標和指標型函式的用法和區別,謝謝
牽著你的手 c 指向函式的指標定義方式為 返回型別 指標名 函式引數列表 例如 void p int 是指向一個返回值為void 引數為int型別的函式。而若想定義一個指向類成員函式的函式指標該怎麼定義呢?對成員函式指標的使用。1 非靜態成員函式 定義方式 返回型別 類名 指標名 函式引數列表 例如...
c 中const是怎麼使用的
用來修飾變數或函式 包括成員函式 及其引數 1 const修飾基本資料型別 2 const應用到函式中 3 const在類中的用法 4 const修飾類物件,定義常量物件 一 const修飾基本資料型別 1.const修飾一般常量及陣列 const int a 10 等價的書寫方式 int cons...