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

指针 C++ 字符串

一二三_Y 9 years, 3 months ago

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


 cpp


 class Foo {
public:
std::string name;

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

了;

1998fox answered 9 years, 3 months ago

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

这个写错了吧??

队长别开枪是我 answered 9 years, 3 months ago

这取决于 name 成员的定义。


 cpp


 char * name[20];

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

a但对撒旦 answered 9 years, 3 months ago

Your Answer