-
human jack;
此時,開始在堆疊記憶體中建立並呼叫 human 類的物件。
human() 初始化物件。 所以輸出第一句話。
human*p=new human;當這句話執行時,堆記憶體會開啟一段人類大小的記憶體,並且還呼叫 human() 來初始化記憶體,即初始化乙個物件,並將其位址分配給 p,於是輸出第二句。
delete p;當這句話執行時,p指向的記憶體被釋放,即第二個物件被破壞,析構函式被調動,所以它顯示:析構函式正在執行。
最後,在程式執行時,自動清理應用程式占用的記憶體,第乙個物件自動呼叫析構函式,因此也表明析構函式正在執行。
-
human jack;定義乙個類。
執行 human()。
cout 並執行析構函式。
delete p;釋放記憶體和。
你的補充劑是對的。 delete p;當只是乙個指標釋放 執行乙個析構函式 程式執行完畢後,會釋放建構函式的記憶體,我們構造幾個的時候會執行幾次析構函式,接下來的程式最後會執行 3 個析構函式才結束。
#include
using namespace std;
class human
public:
human()
human()
int get()
private:
int i;
int main( void )
human jack;
human*p=new human;
delete p;
couthuman jc;
return 0;
-
在使用 hunman 類建立 jack 物件時,可以呼叫建構函式一次,因為您已經在類定義中定義了建構函式並將 i 初始化為 999。 之後,呼叫該函式,它輸出 i 的值。 然後,使用 new 關鍵字為 human 類請求新的記憶體,指標 p 指向它,您可以在其中建立乙個新的 human 物件,因此再次呼叫建構函式,並為 i 分配乙個值 999。
然後,以指標的形式呼叫此物件的 get() 函式。 最後,呼叫您定義的析構函式的析構函式。
-
這裡有迴圈嗎? 不使用迴圈,只使用建構函式和析構函式
-
你只需要弄清楚 for 迴圈的 3 個語句的含義。
第乙個是初始化,第二個是條件語句,第三個是自處理語句;
第乙個語句在迴圈中只用一次,然後判斷第二個語句是否滿足,如果滿足,則進入迴圈體執行 a+=i,然後 i 加 1 給自己,然後判斷第二個語句是否滿足,如果滿足, 它進入迴圈體並執行 A+=I,直到我不滿足 I<10,迴圈跳出。
在開始時,i=0,迴圈開始。 假設 a 初始化為 0,第一步:a+=i; 然後 i++,a=0,i 變為 1,1<10,迴圈繼續;
第 2 步:a+=i; 然後 i++,a=1,i 變為 2,2<10,迴圈繼續;
繼續流通。 第 9 步:a+=i; 然後 i++,a=36,i 變為 9,9<10,迴圈繼續;
步驟10:a+=i; 然後 i++,a=45,i 變為 10,10<10 不成立,迴圈結束。
根據具體問題型別,對步驟進行拆解,分析原因,擴充套件內容等。
具體步驟如下:造成這種情況的主要原因是什麼?
-
c. 理解和使用動詞迴圈語句。
-
C 語言迴圈語句有。
有三個來源,while loop、for loop 和 do...。while 迴圈。
1. While 迴圈。
形式為:while(expr)。
每個迴圈首先確定 expr 表示式是否為 true,如果為 true,則執行迴圈體,否則退出迴圈。
2. for 迴圈。
形式為:for(expr1; expr2; expr3)
當執行 for 迴圈時,expr1 首先執行一次,通常用於初始化迴圈變數。
然後,在每個迴圈上,首先判斷 expr2,如果 expr2 為 true,則執行迴圈體,否則退出迴圈。
當迴圈結束時,執行 expr3,並執行下乙個迴圈,即確定 expr2。
3、do...while 迴圈。
形式為:dowhile(expr);
先執行迴圈體,然後判斷expr,如果為true,則執行下乙個迴圈,否則退出迴圈。
do...while 迴圈的特點是迴圈體至少會執行一次,而不受判斷條件的影響。
-
3 種型別 for while do - while example for(i=0; i<10;我++)BAI 由 i 控制。
重複迴圈的次數。
while(5>0)
如果為 true,請使用括號中的 DAO 條件來控制迴圈 dowhile(3<0)
括號中的條件控制迴圈 如果為 True,則此迴圈將執行 1 次。
typedef void *(pfunction )(void * pf, void *parg );
定義函式型別。 該型別稱為 pfunction,該型別的函式有兩個 void * 指標引數 pf 和 parg,返回值型別為 void *x pointer。 >>>More