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的话
就可以
cpp
class Foo { public: std::string name; public: void setName(const char* name) { this->name = name; } };
了;
this->name这个是**char类型的实参
这个写错了吧??
这取决于 name
成员的定义。
cpp
char * name[20];
这里 name
的类型等同于 char**
。而 strcpy
的参数类型是 char*
,报错是必然了咯。