四種不同物件的生存方式(棧 堆 全域性 區域性靜態)

2021-08-30 10:50:32 字數 1008 閱讀 5908

[分析]:題目的考查點,靜態物件的建立及執行。類中的靜態物件只會執行一次,這是輸出上面結果的原因。

[擴充套件分析]:此種靜態物件的題目之前在360面試的時候被問到過,後來在《深入淺出mfc》基礎部分講解c++重要性質之——c++程式的生與死:兼談建構函式與析構函式部分的示例很能說明問題。

#include

using namespace std;

class cdemo;

cdemo:

:cdemo

(const

char

* str)

cdemo::~

cdemo()

;void

func()

//9析構localobjectinfunc //13析構localobjectinfunc

void cdemo:

:showobjectname()

//顯示物件名

cdemo globalobject

("globalobject");

//1int

main()

//15析構localobjectinmain //16析構staticobject //17析構globalobject

c 四種不同的物件生存方式

在c 中,有四種方法可以產生乙個物件。第一種方法是在堆疊 stack 之中產生它 void myfunc 第二種方法是在堆積 heap 之中產生它 void myfunc 第三種方法是產生乙個全域物件 同時也必然是個靜態物件 cfoo foo 在任何函式範圍之外做此動作 第四種方法是產生乙個區域靜態...

棧的四種方式

按棧指標指向有滿 full 空 empty 滿 sp指向最後乙個壓入的資料 即先修改sp到指向下一目標位置,再存入相應的值 如 push rx sp rx 空 sp指向下乙個空的位置,即先存入相應的值,再修改sp到指向下一目標位置 如 push rx pop rx sp rx 根據壓棧向棧指標的變數...

C 物件賦值的四種方式

1.引用作為引數的方式傳遞.getobject object obj obj.value value1 特點 在外部構造乙個物件.把該物件以引用的方式傳遞到函式中.從而實現對該物件的改變,該引數實質是乙個 out 型別的引數,而非 in 型別的引數.這裡的引用可以稱為別名.點評 這種方式需要特別的注...