2010-06-06 69 views
6

我有這個類的構造函數:如何初始化類的數組?

Pairs (int Pos, char *Pre, char *Post, bool Attach = true); 
雙班

我如何初始化數組?我嘗試過:

Pairs Holder[3] = 
{ 
    {Input.find("as"), "Pre", "Post"}, 
    {Input.find("as"), "Pre", "Post"}, 
    {Input.find("as"), "Pre", "Post"} 
}; 

顯然它不工作,我也嘗試使用()括號而不是{},但編譯器一直在呻吟。很抱歉,如果它是瘸子問題,我GOOGLE了相當努力,但沒能找到答案:/

+1

什麼是你的錯誤? – 2010-06-06 10:19:22

+0

從編譯器發佈錯誤消息時,您通常會得到更快更好的答覆。 – 2010-06-06 10:32:21

回答

11

調用構造函數明確:

Pairs Holder[3] = 
{ 
    Pairs(Input.find("as"), "Pre", "Post"), 
    Pairs(Input.find("as"), "Pre", "Post"), 
    Pairs(Input.find("as"), "Pre", "Post") 
}; 
+0

工作正常,非常感謝:) – Kra 2010-06-06 10:44:48

+0

我不明白的語法。我以爲你不能顯式地調用構造函數(當對象被實例化時,它會被隱式地調用)。另外,它不返回任何東西。 – 2017-05-03 00:03:19

6

調用構造函數:

Pairs Holder[3] = 
{ 
    Pairs(Input.find("as"), "Pre", "Post"), 
    Pairs(Input.find("as"), "Pre", "Post"), 
    Pairs(Input.find("as"), "Pre", "Post") 
}; 

這類似於說

Holder[0] = Pairs(Input.find("as"), "Pre", "Post"); 
Holder[1] = Pairs(Input.find("as"), "Pre", "Post"); 
Holder[2] = Pairs(Input.find("as"), "Pre", "Post"); 

全羽毛類可以發現here

+0

感謝您的鏈接,教程似乎很有趣,我會給它一個。當我的第一個(未編輯的)註釋也導致編譯器錯誤時,我開始相信我的代碼中有一些錯誤。幸運的是,情況並非如此,感謝編輯。 – Kra 2010-06-06 10:53:29