class demoClass {
private:
char item_name[50];
public:
void set_item_name(char *item_name){ this->item_name=item_name; };
};
Run Code Online (Sandbox Code Playgroud)
我收到错误: char无效分配给char [50]
你不能分配这样的字符串.你有几个选择:
class demoClass{
private:
char *item_name;
public:
void set_item_name(char *item_name){
this->item_name = item_name;
};
};
Run Code Online (Sandbox Code Playgroud)
要么
class demoClass{
private:
char item_name[50];
public:
void set_item_name(char *item_name){
strcpy(this->item_name,item_name);
};
};
Run Code Online (Sandbox Code Playgroud)
要么
class demoClass{
private:
string item_name;
public:
void set_item_name(char *item_name){
this->item_name = item_name;
};
};
Run Code Online (Sandbox Code Playgroud)
请注意,如果你不小心,前两个有"陷阱".
在第一个中,如果您传递的指针的生命在对象被销毁之前结束.你会得到一个悬垂的指针.
在第二个中,如果你的字符串超过49个字符,你将超出数组.
第三种是首选的C++方式.
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |