#ifndef
self_sum_h
#define
self_sum_h
#include
unsigned
intsum_solution1
(int
n_value
);
class
sumdefaultconstruct
static
void
reset
()
static
unsigned
intgetsum
()
};
unsigned
intsumdefaultconstruct
::countn=0
;
unsigned
intsumdefaultconstruct
::sumn=0
;
unsigned
intsum_solution1
(int
n_value
)
sumdefaultconstruct
::reset
();
sumdefaultconstruct
*ptr
=new
sumdefaultconstruct
[n_value
];
delete
ptr;
ptr
=null
;
return
sumdefaultconstruct
::getsum
();
}
#endif
unsigned
intsumdefaultconstruct
::countn=0
;
unsigned
intsumdefaultconstruct
::sumn=0
;
以前是怱略了這兩句,對於c++,一段時間不編就忘了。
在c++中的靜態變數只是宣告了,但是沒有定義。還沒有分配儲存空間,靜態變數一般和全域性變數的空間差不多。
那麼我們需要在類外部定義或初使化這兩個靜態變數,也就是分配空間囉。
因為靜態變數是屬於所有物件的。所心也不可以用this訪問,因為這個物件內部並沒有為它分配儲存空間,而是在全域性的變數儲存區。
來自為知筆記(wiz)
靜態建構函式與靜態變數
靜態建構函式 c 物件初始化1.先變數後建構函式。變數先被初始化 然後建構函式被執行 2.先靜態化後例項化。當 乙個類被訪問時 靜態變數和建構函式最先被初始化 接著是物件的例項化變數和建構函式被初始化 3.先派生類後基類。對於變數和靜態建構函式 派生物件在基物件之前被初始化 比如 c類派生自 b類 ...
靜態變數 靜態屬性 靜態建構函式
靜態屬性不屬於任何例項,也是屬於類的,和靜態變數不同的是,只用在呼叫它的時候,才會初始化,而且每次呼叫都會重新賦值。靜態建構函式需用static修飾,但不能用public或private等關鍵字修飾,因為靜態建構函式不能直接呼叫,無論是直接例項化還是通過class.method的方式。下面我們看看在...
Java中構造方法,建構函式,靜態變數的用法
構造方法 作用 對物件的屬性 成員變數 進行初始化。寫法 1,構造方法的方法名與類名完全相同 大小寫必須一樣 2,沒有返回值型別 void可以不寫,也不用寫 3,沒有返回值,沒有return 測試類 public class demo1 class person 寫乙個有引數的構造方法 public...