2012-03-19 82 views
0

這裏我有:如何在函數中定義一個類的靜態成員?

class X { 

public: 
    static int shared_arr[]; 
    static void alloc_and_init() { 

     // Since any static variables defined in the function are allocated some space. 
     // So can I define X::shared_arr here (using the space the static variable for X::shared_arr)? 
     // I think it would be a convenient way to make an approach of some basic memory allocation and initialization. 
    } 

}; 
+2

你應該花一些時間在C++上寫一本好書。您的'shared_arr'成員缺少類型,'[]'是數組修飾符給出的不完整類型,不能在類定義中使用。從更廣泛的角度來看,幾乎可以保證針對您要解決的任何問題提供更好的解決方案。 – 2012-03-19 14:22:01

+1

@KerrekSB:該成員是一個「靜態」成員。我相信你實際上可以在成員的*聲明中使用不完整的類型。 – 2012-03-19 14:24:37

+0

@KerrekSB對不起。我忘了輸入。 – Determinant 2012-03-19 14:25:18

回答

2

沒有,你將有隻有一個CPP文件&任何功能之外來定義它。

int X::shared_arr[MAX_SIZE] = {0}; 
^^^ 

請注意,您缺少數組類型。

+0

我很困惑。函數內部的靜態變量看起來就像外部的變量(範圍區域除外)。 – Determinant 2012-03-19 14:22:44

+0

@ymfoi:範圍解析運算符告訴編譯器你正在初始化的數組是一個類成員。 – 2012-03-19 14:26:47

+0

對不起......我只是忘了。 – Determinant 2012-03-19 14:27:18

相關問題