初始化類的陣列型別變數,想到的兩個辦法

2021-05-25 18:02:53 字數 1005 閱讀 8322

我在做"俄羅斯方塊"的嘗試時,遇到乙個問題,就是描述方塊的座標是陣列,一開始是做成全域性的,但是後來覺得放到類裡面感覺隱藏性更好.

但是遇到了問題:陣列型別的變數,只能在定義的同時才能使用{}來初始化,而在類的定義中只能放成員變數的宣告。

經過思考並嘗試,有兩個方法可行:

方法1.在類的定義時,先宣告這個陣列型別的變數,然後在建構函式時構造乙個臨時陣列變數,然後用for迴圈將值複製給類的成員陣列變數。

標頭檔案class

;原始檔

block::block()

;  //定義並初始化臨時變數tmparr

for (int i=0; i!=7; ++i)  //複製到類的陣列變數中}}

}方法2.方法1雖然可實現但是要處建立乙個陣列還要進行複製動作總覺得不利索。後來想到在定義類時先將陣列變數宣告為static變數,然後在類外(類的cpp檔案中)定義並同時初始化它。

//標頭檔案

class block

;//原始檔

point block::pts[7][4][4]=    //定義的同時可以初始化已宣告的靜態變數:)

,,,},

,,,},

,,,},

,,,}

//形狀z

,,,},

,,,},

,,,},

,,,}

//形狀l

,,,},

,,,},

,,,},

,,,}

//形狀j

,,,},

,,,},

,,,},

,,,}

//形狀i

,,,},

,,,},

,,,},

,,,}

//形狀o

,,,},

,,,},

,,,},

,,,}

//形狀t

,,,},

,,,},

,,,},

,,,}

};

結構型別變數的初始化

結構型別變數也與其他變數一樣,可以再定義的同時進行初始化 include include int main void struct studenttype struct studenttype student 99.8 printf d n student.num printf s n studen...

C 類變數初始化

c 類變數初始化 c 為中類物件的構造順序是這樣的 1.分配記憶體,呼叫建構函式時,隱式 顯示的初始化各資料成員 2.進入建構函式後在建構函式中執行一般計算 c 類中變數的初始化 1.初始化列表 csomeclass csomeclass x 0 y 1 const常量定義必須初始化,且必須使用初始...

類中變數初始化

類中的變數 包括基本資料型別,物件引用 在載入物件位元組碼進記憶體,在使用其之前,呼叫構造方法之前就已經完成初始化賦值了。其中static 修飾的變數在載入物件位元組碼時時就賦值了,其他變數在這以後被賦值,也就是static 修飾的先賦值。驗證 如下 package cn.ytu.en class ...