作者loveray78327 (Ray)
看板C_and_CPP
標題[問題] 關於 struct 初始化
時間Mon Mar 2 21:14:45 2009
struct a
{
int b; // 假設我要讓這個struct的b一開始就為0要怎麼做阿?
};
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.72.36
1F:推 realmeat:在定義宣告是無法初始化的, 你要建一個實際的空間才行 03/02 21:16
2F:→ loveray78327:3Q~ 03/02 21:26
3F:推 VictorTom:C++的話, 就幫這個struct a寫個建構子讓b = 0吧....:) 03/02 21:40
4F:→ yehsd:接著寫: 03/02 21:44
5F:→ yehsd:struct a sa={0}; 就可以初始化了 03/02 21:45
6F:推 bobhsiao:gcc 可以寫 .b=0, 但不通用. 03/02 22:08
7F:→ realmeat:gcc還要新一點的版本的才能這樣用 =.= 03/02 22:19
8F:推 legnaleurc:因為那是C99的功能,而不是compiler extention 03/02 22:19
9F:推 snowlike:static const int b=0; 03/02 22:27
10F:推 Killercat:這點是少數幾個C#比較方便的地方,可以直接在class/stru 03/03 08:02
11F:→ Killercat:裡面設定初值,如private int b = 0; 而不用大費周章跑 03/03 08:02
12F:→ Killercat:到ctor去設,更不像C99有static const只能設在int的限制 03/03 08:03
13F:→ Killercat:c++0x這些真的也許應該參考一下:/ 03/03 08:03
14F:推 legnaleurc:應該是考慮到不同的ctor的初始化方式吧 03/03 21:32
15F:推 fwfly:相對應的struct我都再寫一個initial的function比較保險 03/04 10:32