首页 > c++指针指向字符串的问题

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


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

cppclass Foo {
public:
std::string name;

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

了;


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

这个写错了吧??


这取决于 name 成员的定义。

cppchar * name[20];

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

【热门文章】
【热门文章】