C 靜態物件

2021-08-04 13:32:05 字數 1517 閱讀 1179

static in c++

two basic meanings

static storage

--allocated once at a fixed address
visibility of a name

--internal linkage
don』t use static except inside functions and classes.

uses of 「static」 in c++

static free functions—-deprecated棄用

static globle variables—-deprecated棄用

static local variables—-persistent storage持久儲存

static member variables—-shared by all instances所有物件共享

static member functions—-shared by all instances, can only access static member variables所有物件共享,只能訪問靜態變數或靜態函式

static inside functions

value is remembered for entire program

initialization occurs only once

constructors are called before main() is entered

--constructor called at-most once

--main() is no longer the first function called

--the constructor arguments must be satisfied

destructors called when

--main() exited

--exited is called

–compiler assures lifo order of destructors

static means

--hidden(now usually use public,protected,private)

--persistant

hidden: a static member is a member

--obeys usual access rules
persistant: independent of instances

假設有乙個類:

class a

void f()

物件 a 的初始化發生在第一次進f()函式的時候,空間在全域性變數區,在編譯(鏈結)的時候分配空間。

(而全域性變數的構造發生在程式執行的時候,在main()之前)

物件呼叫靜態方法 C 中靜態成員 靜態方法 靜態類

平時在用c 做開發的朋友都知道,不論是靜態成員還是靜態方法還是靜態類都是用static關鍵字來修飾。也就是說只要看到了static,那麼它後面的東西就是靜態!在c 中,靜態成員或者靜態方法是屬於類的,不是屬於物件。假如我們有乙個類myclass,需要例項化這個 類,就應該這麼做 myclass my...

C 之全域性物件,區域性物件,靜態區域性物件

先說兩個概念 作用域 scope 和生命週期 lifetime 作用域 名字的作用域指的是知道該名字的程式文字區域 生命週期 物件的生命週期指在程式執行過程中物件存在的時間 全域性物件,顧名思義是全域性的物件,其作用域是整個程式文字,其物件的宣告週期是整個程式的執行過程 區域性物件 一般說的區域性變...

C 棧物件,堆物件,靜態物件的理解

的優勢是在適當的時候自動生成,又在適當的時候自動銷毀,不需要程式設計師操心 而且棧物件的建立速度一般較堆物件快,因為分配堆物件時,會呼叫operator new操作,operator new會採用某種記憶體空間搜尋演算法,而該搜尋過程可能是很費時間的,產生棧物件則沒有這麼麻煩,它僅僅需要移動棧頂指標...