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

发布于 2022-09-01 06:18:15 字数 377 浏览 16 评论 0

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赋值就要这样写吗?为什么要这样写?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

善良天后 2022-09-08 06:18:15

这取决于 name 成员的定义。

cppchar * name[20];

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

疏忽 2022-09-08 06:18:15

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

这个写错了吧??

救赎№ 2022-09-08 06:18:15

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

cppclass Foo {
public:
std::string name;

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

了;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文