2023年計算機二級考試c 輔導筆記類和堆2

2022-09-22 21:03:21 字數 838 閱讀 1549

堆和類陣列

前面提到,類物件陣列的每個元素都要呼叫建構函式和析構函式。下面的例子給出了乙個錯誤的釋放類陣列所占用的記憶體的例子。

#include iostream.h

class date

int main()

指標dt指向乙個有五個元素的陣列。按照陣列的定義,編譯器會讓new運算子呼叫date類的建構函式五次。但是delete被呼叫時,並沒有明確告訴編譯器指標指向的date物件有幾個,所以編譯時,只會呼叫析構函式一次。下面是程式輸出;

date constructor

date constructor

date constructor

date constructor

date constructor

process the date

date destructor

為了解決這個問題,c++允許告訴delete運算子,正在刪除的那個指標時指向陣列的,程式修改如下:

#include iostream.h

class date

int main()

最終輸出為:

date constructor

date constructor

date constructor

date constructor

date constructor

process the date

date destructor

date destructor

date destructor

date destructor

date destructor

2023年計算機二級考試C語言輔導常用庫函式1

absread 讀磁碟絕對扇區函式 原形 int absread int drive,int num,int sectnum,void buf 功能 從drive指定的驅動器磁碟上,sectnum指定的邏輯扇區號開始讀取 通過dos中斷0x25讀取 num個 最多64k個 扇區的內容,儲存於buf所...

2023年計算機二級考試C語言輔導常用庫函式2

標頭檔案 bcd.h bdos 原形 int bdos int fnum,unsigned dx,unsigned al 其中fnum是系統呼叫號 dx是傳給暫存器dx的值 al是傳給暫存器al的值 功能 dos系統呼叫 int21h 返回值 ax中的值 biosdisk 呼叫bios磁碟驅動程式函...

2023年計算機二級考試c 輔導筆記類和堆3

過載new和delete運算子 前面已經介紹了如何用new和delete運算子函式來動態第管理記憶體,在那些例子中使用的都是全域性的new和delete運算子。我們可以過載全域性的new和delete運算子,但這不是好的想法,除非在進行低階的系統上或者嵌入式的程式設計。但是,在某個類的內部過載new...