推 LPH66:把那個陣列成員本身設成靜態不行嗎? 12/22 16:37
推 bestwishes:initail list? 12/22 16:43
請問一下,因為我沒把這個陣列設為static來做的理由是,我在想static 變數
一般用來作為物件間溝通用,可是我只是要一個固定的資料,所以就不用
static的private member 來做這個array
然後vc++可以過,我一開始是這樣做
可是利用PkmX大大的方式來做,就是initialize list, 在code::block下
定義建構式在class內跟 定義建構式在class外 compiler都可以過
不過有警告 warning: extended initializer lists only available with
-std=c++0x or -std=gnu++0x
但是在vc++下 就完全不行了
請問如何解決QQ?
※ 編輯: rnbjacky 來自: 118.168.84.244 (12/22 18:18)
推 LPH66:並不是只有物件間溝通才需要 static 12/22 18:48
→ LPH66:只要你是全部的物件共用這一份資料就能用 12/22 18:49
→ LPH66:你這裡看起來這個陣列在所有 A 的實體都一樣 12/22 18:49
→ LPH66:那用 static 個人覺得並無不妥 12/22 18:49
→ LPH66:另外那個 warning 就是告訴你 C++11 (即 C++0x) 才支援這個 12/22 18:50
→ rnbjacky:喔喔 感謝您 那最後問題就是 如果不用static 要如何處理 12/22 19:01
→ rnbjacky:vc++ 不給過 別種初始化的方法? 12/22 19:01
→ rnbjacky:by initialize list 或其他初始化方法 12/22 19:02
推 Chikei:除了在ctor裡一個值一個值assign以外沒有辦法 12/23 00:39
→ Chikei:03的標準就是array member只能做default init 12/23 00:39
→ loveme00835:VC++ 是哪一版的? 12/23 20:41
→ rnbjacky:2010 12/24 03:47
→ loveme00835:嗯...查了一下支援度很差, 即使 std::array 也沒有以 12/24 10:25
→ loveme00835:initializer_list 初始化的建構子, 不然就是另外再用 12/24 10:26
→ loveme00835:區域的std::array初始化好, 再用 copy 複製給成員 12/24 10:27
→ rnbjacky:感謝板主大大 12/24 14:12