C++類的靜態成員變量屬於該類,在該類所有的對象間共享。
要弄清如何初始化,首先要明白聲明、定義、初始化三個概念的不同。
聲明:指定變量的名字和類型,可以多次聲明。
定義:為該成員變量分配存儲空間,有且僅有一個定義。
初始化:為該成員變量賦初值。
在類的聲明中,靜態成員變量僅完成了聲明過程,並沒有進行定義和賦初值。
靜態成員變量在編譯時存儲在靜態存儲區,即定義過程應該在編譯時完成,因此一定要在類外進行定義,但可以不初始化。
class A
{
public:
static int a;
}
int a;//類外定義,沒有初始化
int a=0;//類外定義,並進行初始化。
轉載來源:https://www.cnblogs.com/crazyfrog/p/10922854.html