c 11類的靜態成員

2021-10-24 00:18:32 字數 869 閱讀 4099

一、類靜態成員和類成員之間的區別

1.靜態成員在類的所有物件中是唯一且共享的。

2.靜態成員即使在類物件不存在的情況下也能使用。靜態成員只要使用類名加範圍解析運算子 :: 就可以訪問。

3.靜態成員分為靜態成員函式和靜態成員變數。

4.靜態成員可以使用或訪問其他靜態成員。靜態成員不能使用或訪問該類的非靜態成員即不能使用this指標。

5.類非靜態成員可以使用靜態成員。

二、類靜態成員的使用例項

#include #include "math.h"

class coordinatesystem

void writeposition(double tempx , double tempy)

double distance(coordinatesystem b)

//靜態成員函式

static int retobjectnum1()

int retobjectnum2()

private:

double x;

double y;

//靜態成員變數

static int objectnum;

};int coordinatesystem::objectnum=0;

int main()

返回值:

now retobjectnum1=0

now retobjectnum1=1

now retobjectnum1=1

now retobjectnum2=1

now retobjectnum1=2

now retobjectnum1=2

C 11 非靜態成員的sizeof

非靜態成員變數的sizeof 從c語言被發明開始,sizeof就是乙個運算子,也是c語言中除了加減乘除以外為數不多的特殊運算子之一。而在c 引入類 class 型別之後,sizeof的定義也隨之進行了拓展。不過在c 98標準中,對非靜態成員變數使用sizeof是不能夠通過編譯的。如下示例 1 inc...

C 11類成員的初始化總結

以前看到的c 98的文章 c 為類中提供類成員的初始化列表。類物件的構造順序是這樣的 1.分配記憶體,呼叫建構函式時,隱式 顯示的初始化各資料成員 2.進入建構函式後在建構函式中執行一般計算 1.類裡面的任何成員變數在定義時是不能初始化的。2.一般的資料成員可以在建構函式中初始化。3.const資料...

C 11 靜態斷言static assert

一 assert 在c 中,或中提供了assert巨集 執行期斷言 可以定義ndebug來禁用assert巨集。二 static asser c 11 靜態斷言static assert,編譯期斷言。static assert 常量表示式,提示字串 兩個引數,乙個是斷言表示式,由於是在編譯期間,所以...