C 靜態成員變數和靜態成員函式

2021-10-14 12:10:25 字數 876 閱讀 8885

學習筆記

要點編譯階段分配記憶體

所有物件共享資料

通過物件,通過類名都可訪問

靜態成員變數如果通過類名訪問不會呼叫建構函式,所以一般不在建構函式中初始化static,e.g. int classname::m_age = 10;

可以有許可權控制(類中定義公私有),一般在類內宣告,類外初始化(通過類名訪問) 要點

可以訪問靜態成員變數,不可以訪問普通成員變數

普通成員函式都可以訪問

通過物件,通過類名都可訪問,e.g. classname::func();

可以有許可權控制(類中定義公私有)

#include

using

namespace std;

class

student

;//初始化靜態成員變數

int student::m_total =0;

float student::m_points =

0.0;

//操作靜態成員變數

student::

student

(char

*name,

int age,

float score)

:m_name

(name)

,m_age

(age)

,m_score

(score)

void student::

show()

//定義靜態成員函式

int student::

gettotal()

float student::

getpoints()

intmain()

C 靜態成員變數和靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...

C 靜態成員變數和靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...

C 靜態成員變數和靜態成員函式

靜態成員變數和靜態資料成員並不屬於某乙個類物件,而是整個類,為所有物件共有,下面介紹 靜態成員變數和靜態資料成員的一些特徵 class a int tmain int argc,tchar argv 結果如下 1 class a const char a c b 可以通過作用域操作符,類的物件,引用...