[問題] private member 是靜態array(內容fixed)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
問題(Question):
如何在一個class中,宣告一個靜態的陣列,或者是無法?
程式碼(Code):(請善用置底文網頁, 記得排版)
作法一:
class A{
public:
A( );
// other member functions ---
private:
int array[10];
}
請問這樣如何利用"{ }"初始化這個array, i.e.令array = {0,1,2,3,4,5,6,7,8,9};
建構式不行,class定義內也不行...
作法二:
class A{
public:
A( );
// other member functions ---
private:
int * array;
}
A:A( ){
static int temp[ ] = {0,1,2,3,4,5,6,7,8,9};
array = temp;
}
我只想到作法二的解決方式,作法一是無解,
請問有沒有版上大大,處理過類似問題,欲在私有成員變數中加入一個固定內容的
array,一般來說會如何做?
亦或者是作法二會有什麼問題?效率?安全?
希望有遇過的大大可以幫忙解惑
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.84.244
推
12/22 16:37, , 1F
12/22 16:37, 1F
推
12/22 16:43, , 2F
12/22 16:43, 2F
→
12/22 16:58, , 3F
12/22 16:58, 3F
推
12/22 17:16, , 4F
12/22 17:16, 4F
請問一下,因為我沒把這個陣列設為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)
推
12/22 18:48, , 5F
12/22 18:48, 5F
→
12/22 18:49, , 6F
12/22 18:49, 6F
→
12/22 18:49, , 7F
12/22 18:49, 7F
→
12/22 18:49, , 8F
12/22 18:49, 8F
→
12/22 18:50, , 9F
12/22 18:50, 9F
→
12/22 19:01, , 10F
12/22 19:01, 10F
→
12/22 19:01, , 11F
12/22 19:01, 11F
→
12/22 19:02, , 12F
12/22 19:02, 12F
推
12/23 00:39, , 13F
12/23 00:39, 13F
→
12/23 00:39, , 14F
12/23 00:39, 14F
→
12/23 20:41, , 15F
12/23 20:41, 15F
→
12/24 03:47, , 16F
12/24 03:47, 16F
→
12/24 10:25, , 17F
12/24 10:25, 17F
→
12/24 10:26, , 18F
12/24 10:26, 18F
→
12/24 10:27, , 19F
12/24 10:27, 19F
→
12/24 14:12, , 20F
12/24 14:12, 20F