我想在C++的類別中初始化字串陣列,但是也不能直接在類別中初始化,也不能在建構子中用靜態的方式去初始化,請問是否有其他方法可以解決呢,謝謝!
2006-08-27 22:25:38 · 6 個解答 · 發問者 roy 1 in 電腦與網際網路 ➔ 程式設計
class Table
{
private:
char* tube[9][4];//筒
char* rope[9][4];//索
char* abso[9][4];//萬
char* word[7][4];//字牌
char* pattern[8];//花牌
public:
Table( );
};
Table::Table( )
{
}
譬如說我想建立上面Table的物件,那我要怎麼在建構子裡初始化所有的牌?
2006-08-28 05:32:20 · update #1
其實我這樣宣告是對的耶,不過還是謝謝各位的解釋,我大概已經知道如何解決了!!
2006-08-28 21:20:08 · update #2
我不確定你所謂靜態的方式指的是什麼,但如果只是要給文字應該很簡單,我想你應該只是要把不同的牌型給定一個他專屬的名稱,那麼建構子可以這麼寫:#include
2006-08-28 18:55:38 補充:
對不起,感謝『心冷』及『ASD』的補充,原發問者宣告不正確,我沒注意到char* tube[9][4];//筒 應該改成char tube[9][4];//筒 其他類推
2006-08-28 08:52:43 · answer #1 · answered by Rody 5 · 0⤊ 0⤋
你用 _[4]會不會出問題啊!
不太會處理的話, 建議你改用 _[5]
2006-08-29 06:06:13 · answer #2 · answered by ? 7 · 0⤊ 0⤋
是不是本身陣列宣告就不對了,如:tube[9][4];
2006-08-28 12:25:41 · answer #3 · answered by Almond 6 · 0⤊ 0⤋
給Rody 您的程式如照他宣告class 的方法, 一定會當調.
2006-08-28 11:33:02 · answer #4 · answered by SiYu 5 · 0⤊ 0⤋
若用char *的話可用strdup().若用string的話可用string裡的建構子.例:
class h
{
private:
char *first;
string last;
public:
h(char *f, char *l) : first(strdup(f)), last(l) {}
...
};
2006-08-31 02:22:50 補充:
最近有點忙.結果忘了回來看.不好意思.不過已解決就好了.
2006-08-28 04:45:43 · answer #5 · answered by 龍 7 · 0⤊ 0⤋
建構子中用靜態的方式?
有什麼特別的設計原因嗎?
我比較好奇為什麼你想用靜態的方式.一般在建構子內初始化就可以.
2006-08-27 22:57:39 · answer #6 · answered by ? 4 · 0⤊ 0⤋