JNIEnv的使用在C和C 中的區別

2022-07-09 14:00:34 字數 3340 閱讀 7142

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語言的 while中怎麼使用,C語言的 while中怎麼使用break

i 0 while i 100 if a i 10 break i 與之相關的是continue,其只結束當前次的迴圈,並不跳出整個迴圈。關於while迴圈,break跳出迴圈 while迴圈普通格式 while conditiondo commanddone1234 簡化格式 while 條件 d...

C的Socket的使用,C 使用Socket如何進行連線

給你推薦一本書吧!c net網路核心程式設計 很好的一本書,前些時候我也在研究這個,就是看的這本書。我也是花了半天時間學習,花半天時間封裝自己的server類。還是建議你自己動手寫,寫了你就明白了,明白後就會知道也不是很複雜 c 使用socket如何進行連線 利用c 進行socket通訊程式設計之一...

在c中如何使用和定義變數,c 中可以用介面直接定義一個變數嗎?為什麼?

我補充說點兒實際的吧!例項變數在類的內部定義,不屬於方法,會自動初始化。靜態的例項變數可以在類中任何一個方法 包括靜態的和非靜態的 中訪問,非靜態的例項變數可以在類中任何非靜態的方法中訪問。區域性變數是指在方法內部定義的變數,包括形式引數。具有一定的作用範圍,即外層的大括號,出了大括號便不能使用。靜...