- 相關推薦
構造函數與析構函數
實驗目的
觀察構造函數和析構函數的執行過程。
學習類的聚集使用方法。
使用VC++的debug調試功能觀察程序流程,跟蹤觀察類的構造函數、析構函數、成員函數的執行順序。
實驗任務
定義一個CPU類,包含等級(rank)、頻率(frequency)、電壓(voltage)等屬性,有兩個公有成員函數run、stop。其中,rank為枚舉類型CPU_Rank,定義為enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7},frequency為單位是MHz的整型數,voltage為浮點型的電壓值。觀察構造函數和析構函數的調用順序。(在實驗三完成的程序的基礎上繼續做)
定義一個簡單的Computer類,有數據成員芯片(cpu)、內存(ram)、光驅(cdrom)等等,有兩個公有成員函數run、stop。cpu為CPU類的一個對象,ram為RAM類的一個對象,cdrom為CDROM類的一個對象,定義并實現這個類。(在實驗三完成的程序的基礎上繼續做)
(選做)設計一個用于人事管理的People(人員)類?紤]到通用性,這里只抽象出所有類型人員都具有的屬性:number(編號)、sex(性別)、birthday(出生日期)、id(身份證號)等等。其中“出生日期”定義為一個“日期”類內嵌子對象。用成員函數實現對人員信息的錄入和顯示。要求包括:構造函數和析構函數。(在實驗三完成的程序的基礎上繼續做)
實驗步驟
首先定義枚舉類型CPU_Rank,例如enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7},再定義CPU類,包含等級(rank)、頻率(frequency)、電壓(voltage)等私有數據成員,定義成員函數run、stop,用來輸出提示信息,在構造函數和析構函數中也可以輸出提示信息。在主程序中定義一個CPU的對象,調用其成員函數,觀察類對象的構造與析構順序,以及成員函數的調用。程序名:lab4_1.cpp。
使用debug調試功能觀察程序ab4_1.cpp的運行流程,跟蹤觀察類的構造函數、析構函數、成員函數的執行順序。參考程序如下:
//lab4_1.cpp
#include <iostream.h>
enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};
class CPU
{
private:
CPU_Rank rank;
int frequency;
float voltage;
public:
CPU (CPU_Rank r, int f, float v)
{
rank = r;
frequency = f;
voltage = v;
cout << "構造了一個CPU!" << endl;
}
~CPU () { cout << "析構了一個CPU!" << endl; }
CPU_Rank GetRank() const { return rank; }
int GetFrequency() const { return frequency; }
float GetVoltage() const { return voltage; }
void SetRank(CPU_Rank r) { rank = r; }
void SetFrequency(int f) { frequency = f; }
void SetVoltage(float v) { voltage = v; }
void Run() {cout << "CPU開始運行!" << endl; }
void Stop() {cout << "CPU停止運行!" << endl; }
};
void main()
{
CPU a(P6,300,2.8);
a.Run();
a.Stop();
}
調試操作步驟如下:
單擊Build | Start Debug | Step Into命令,或按下快捷鍵F11,系統進入單步執行狀態,程序開始運行,一個DOS窗口出現,此時Visual Studio中光標停在main()函數的入口處;
從Debug菜單或Debug工具欄中單擊Step Over,此時,光標下移,程序準備執行CPU對象的初始化;
單擊Step Into,程序準備執行CPU類的構造函數;
連續單擊Step Over,觀察構造函數的執行情況,直到執行完構造函數,程序回到主函數;
此時程序準備執行CPU對象的run()方法,單擊Step Into,程序進入run()成員函數,連續單擊Step Over,直到回到main()函數;
繼續執行程序,參照上述的方法,觀察程序的執行順序,加深對類的構造函數、析構函數、成員函數的執行順序的認識;
再試試Debug菜單欄中別的菜單項,熟悉Debug的各種方法。
首先定義CPU類(可使用第二題中的CPU類)、RAM類、CDROM類。再定義Computer類:定義私有數據成員cpu、ram、cdrom,定義公有成員函數run、stop,可在其中輸出提示信息。在主程序中定義一個Computer的對象,調用其成員函數,觀察類對象及其成員變量的構造與析構順序,以及成員函數的調用。程序名:lab4_2.cpp。
使用debug調試功能觀察lab4_2.cpp程序的運行流程,跟蹤觀察類的構造函數、析構函數、成員函數的執行順序,特別注意觀察成員變量的構造與析構順序。
【構造函數與析構函數】相關文章:
函數的零點03-07
函數概念的“源”與“流03-29
二次函數在函數解答題中的考查的問題和策略11-16
函數概念教學的幾點思考11-22
矩陣函數的性質及其應用03-07
初中數學函數小論文05-14
函數概念教學的現狀分析03-29
論隨機變量函數的分布03-07