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
成员的定义。这里
name
的类型等同于char**
。而strcpy
的参数类型是char*
,报错是必然了咯。