建構函式中的靜態變數

2022-09-06 15:51:14 字數 1504 閱讀 3294

#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...