一、類靜態成員和類成員之間的區別
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 常量表示式,提示字串 兩個引數,乙個是斷言表示式,由於是在編譯期間,所以...