推 ast9869:static const int var1 = 10; //init 應該要在 cpp 中 08/08 21:29
→ ast9869:說錯了應該要在 class 外面作初使化 08/08 21:30
→ su31o4gj83:的確如a大你說的, 在外部宣告就可以正常運作了 08/08 21:48
→ su31o4gj83:不過還是有點怪, 因為static const好像也可以在class 08/08 21:50
→ su31o4gj83:內宣告, 我那時就是想要偷懶, 想說在class內宣告就好了 08/08 21:51
→ su31o4gj83:所以就加上了const, 結果就出事了.... 08/08 21:51
推 wowtiger:好像可以宣告 但是最近碰到 gcc 4.1.3(debian) 就出錯了 08/08 23:42
→ tinlans:因為那很接近 #define var1 10 的行為,var1 沒有實體。 08/09 16:08
→ su31o4gj83:不過var1是lvalue, 即使加了static或const 08/09 19:02
→ su31o4gj83:仍是lvalue, 應該有實體吧@@?, 我的觀念是哪裡問題? 08/09 19:03
→ su31o4gj83:麻煩各位指點一下, 謝謝 08/09 19:05
→ firose:const 既然不能修改, 就可以編到表格去, 不用佔據實體 08/10 16:19
→ firose:但這裡他必須產生實體, 因為你對他取址了 08/10 16:20
→ su31o4gj83:請問一下那編譯器是什麼時候會選擇編表格 ?? 08/10 21:37
→ su31o4gj83:const int a = 5; const int *pt = &a; 08/10 21:38
→ su31o4gj83:使用上都還蠻安全的, 還是是因為static const的關係 ?? 08/10 21:41
→ su31o4gj83:剛剛試了一下, 在函式中使用static const int a = 5; 08/10 21:47
→ su31o4gj83:const int *pt = &a; 08/10 21:47
→ su31o4gj83:cout << *pt << endl; 運作都還蠻正常的 08/10 21:49