1、寫出執行結果:
// test1.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include using namespace std;
class a
virtual ~a()
};class b:public a
virtual ~b()
private:
char *buf;
};void fun(a *a)
int _tmain(int argc, _tchar* argv)
解答:
// test1.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include using namespace std;
// 定義乙個類:a
class a
// 類a的建構函式
virtual ~a() // 類a的析構函式
};// 定義乙個類b,繼承於類a
class b:public a
// 類b的析構函式
virtual ~b()
private:
char *buf;
};// 全域性函式
void fun(a *a)
// main函式
int _tmain(int argc, _tchar* argv)
// 過程說明:
/*1、a *a=new b(15);這一句,先呼叫b類的建構函式,而呼叫b類的建構函式時,因為b類是繼承於a類,所以還會先呼叫a類的建構函式,執行完a類的建構函式後,接著執行b類的建構函式的函式體中的內容。
2、fun(a);這一句,是將new的變數釋放掉。需要呼叫b類的析構函式,同理,也會呼叫a類的析構函式。
注意:1和2 兩個過程是對稱的,也就是說,先呼叫建構函式的類,後呼叫析構函式。
九 構造與析構
c 中的建構函式 如何給物件進行初始化?一般而言所有的物件都需要乙個確定的初始狀態 解決方案 為每個類都提供乙個public的initialize函式 物件建立後立即呼叫initialize函式進行初始化 插入9 1.cpp 上述解決方案initialize只是乙個普通的函式,必須顯示的呼叫 一旦由...
構造與析構函式
1 建構函式 作用 建立類物件,並初始化其成員。可定義多個進行過載 注 建構函式可以有引數,無返回型別,不能是虛函式,在類體外定義時其函式名前加上 類名 可過載 若乙個類物件是另乙個類物件的資料成員,那麼在建構函式建立物件時,作為資料成員的類物件要先呼叫自身的建構函式 區域性到整體 2 析構函式 作...
Swift 構造與析構
在某些情況下系統會自動生成乙個構造器。使用構造器時注意事項。在 swift 中採用繼承式初始化方式。如果沒有在類中實現任何指定構造器,那麼將繼承父類中的所有指定構造器。父類 class transport 無引數指定構造器 init str string 子類 class car transport...