乙個例子記住C 物件的生存週期

2021-07-09 11:07:10 字數 886 閱讀 3970

標籤 : c++ examples

**說明:

#include 

#include

using

namespace

std;

class a ;

a::a(char * st)

a::~a( )

void fun( )

int main( )

static a exstaobj("外部靜態物件exstaobj");

a gblobj("外部物件gblobj");

輸出:

外部靜態物件exstaobj被建立時呼叫建構函式 ! 

外部物件gblobj被建立時呼叫建構函式 !

主函式體內的自動物件mainobj被建立時呼叫建構函式 !

主函式體內,呼叫fun()函式前:

在fun( )函式體內 :

fun( )函式體內的自動物件funobj被建立時呼叫建構函式 !

內部靜態物件instaobj被建立時呼叫建構函式 !

fun( )函式體內的自動物件funobj被撤消時呼叫析構函式 !

主函式體內,呼叫fun()函式後:

主函式體內的自動物件mainobj被撤消時呼叫析構函式 !

內部靜態物件instaobj被撤消時呼叫析構函式 !

外部物件gblobj被撤消時呼叫析構函式 !

外部靜態物件exstaobj被撤消時呼叫析構函式 !

若將a gblobj("外部物件gblobj");寫在static a exstaobj("外部靜態物件exstaobj");前面,則輸出時兩者順序也顛倒。

乙個例子記住C 物件的生存週期

說明 類a,含建構函式和析構函式 普通函式fun,函式體裡新建了類a的區域性自動物件funobj和區域性靜態物件instaobj main方法新建了類a的區域性自動物件mainobj,呼叫fun方法 外面新建了a的的外部靜態物件exstaobj和外部物件gblobj include include ...

php 物件導向的乙個例子

複製 如下 php class person 下面是人的成員方法 function say 這個人可以說話的方法 function run 這個人可以走路的方法 這是乙個析構函adhctbj數,在物件銷毀前呼叫 function destruct 通過構造方法建立3個物件 p1,分別傳入三個不同的實...

C 多型的乙個例子

class a virtual void f2 static void f3 virtual void f4 class b virtual void f2 static void f3 virtual void f4 int main 執行結果 a f1 b f1 a f3 b f2 分析 類的成...