[語法] class 成員與 const 的問題

看板C_and_CPP作者 (\冏/)時間14年前 (2010/06/12 01:52), 編輯推噓4(406)
留言10則, 5人參與, 最新討論串1/2 (看更多)
最近試著使用 const 這個描述詞,來對程式做一些組合,不過好像有點亂 class Reader { public: void set_name(const char *str) { /* invalid conversion from `const char*' to `char*' */ strcpy(name, str); /* 編不過,那該如何付予 const 變數初值呢? */ } const string get_name() { return name; } Reader() { /* 這邊會有問題,原是希用建構子付予初值,這樣為何不行?! */ strcpy(name, "NULL"); } private: const char name[10]; float index; }; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.231.17

06/12 01:53, , 1F
Reader() : name("NULL") { } 不過就再也不能改了...
06/12 01:53, 1F

06/12 01:57, , 2F
james~ 這樣好像不行耶
06/12 01:57, 2F

06/12 01:59, , 3F
incompatible types in `const char[5]' to `const char[10]
06/12 01:59, 3F

06/12 02:05, , 4F
你既然要提供set_name這個函式 name就不該是const
06/12 02:05, 4F

06/12 02:06, , 5F
突然發現既然get回傳string 為何name不直接用string?
06/12 02:06, 5F

06/12 02:12, , 6F
要改成Reader():name("NULL"),不過我跟上面一樣覺得
06/12 02:12, 6F

06/12 02:12, , 7F
不該用const
06/12 02:12, 7F

06/12 02:13, , 8F
如果怕被修改的話,可以在()後面加const吧?
06/12 02:13, 8F

06/12 02:17, , 9F
const char []要怎給初值阿??
06/12 02:17, 9F

06/12 03:18, , 10F
union這招好像不行
06/12 03:18, 10F
文章代碼(AID): #1C4dVVmE (C_and_CPP)
文章代碼(AID): #1C4dVVmE (C_and_CPP)