2014-04-12 20 views
-5

我header.h我怎麼能初始化一個巨大的靜態類在C++

Class A 
{ 
int var_1; 
int var_2; 
}; 
Class b 
{ 
private: static A var[MAX]; 
..... 
}; 

但我怎麼能初始化header.cpp這個屬性?

+1

正常嗎?你有什麼不適合讓我們開始? –

+1

什麼樣的命名是「header.cpp」? –

+1

-1不是真實代碼 –

回答

3

給出一個默認構造函數,將int設置爲0或其他值。

A b::var[MAX] = {};

+0

+1這是正確的答案。 – LihO

0

假設有class A與公共構造不帶任何參數(或默認構造函數):

文件BH

#include "a.h" 

// global constant: 
const int MAX = 10; 

class B { 
private: 
    static A var[MAX]; // declaration 
}; 

文件b.cpp

#include "b.h" 

A B::var[MAX] = {};  // definition 
0

在實現文件:

A b::var[] = {}; // static member definition 
       // A() is called for each member so you might want 
       // to implement it 

例如:

#define MAX 10 

class A 
{ 
    int var_1; 
    int var_2; 
}; 
class b 
{ 
private: 
    static A var[MAX]; // static member declaration 
}; 

A b::var[] = {};   // static member definition 

int main() { 
    return 0; 
} 

http://ideone.com/ndkPmX