看板 C_and_CPP 關於我們 聯絡資訊
最近試著使用 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
james732:Reader() : name("NULL") { } 不過就再也不能改了... 06/12 01:53
homal:james~ 這樣好像不行耶 06/12 01:57
homal:incompatible types in `const char[5]' to `const char[10] 06/12 01:59
holymars:你既然要提供set_name這個函式 name就不該是const 06/12 02:05
james732:突然發現既然get回傳string 為何name不直接用string? 06/12 02:06
loveflames:要改成Reader():name("NULL"),不過我跟上面一樣覺得 06/12 02:12
loveflames:不該用const 06/12 02:12
loveflames:如果怕被修改的話,可以在()後面加const吧? 06/12 02:13
QQ29:const char []要怎給初值阿?? 06/12 02:17
loveflames:union這招好像不行 06/12 03:18