c++指针指向字符串的问题

strcpy(this->name,name);

其中this->name 中的name是一个字符串,报错是在this上,说this->name这个是**char类型的实参,与char类型的形参不兼容。
this->name 不应该是
char类型的吗?

我像下面这样写之后就不报错了:

Book::Book(char * name,char * WriterName):Publication(name)
{
    strcpy(*this->name,name);
}

我要给name赋值就要这样写吗?为什么要这样写?

阅读 4.9k
3 个回答

这取决于 name 成员的定义。

cppchar * name[20];

这里 name 的类型等同于 char**。而 strcpy 的参数类型是 char*,报错是必然了咯。

this->name这个是**char类型的实参

这个写错了吧??

看不懂你的错误提示,能贴一个name的定义吗?
std::string name的话
就可以

cppclass Foo {
public:
std::string name;

public:
void setName(const char* name) {
this->name = name;
}
};

了;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题