c++中出现没有与参数列表匹配的函数


class market//商城
{
private:
    int num;//商品编号
    int stock;//商品库存
    char* name;//商品名
public:
    market(char* name, int num, int stock)
    {
        this->num = num;
        this->stock = stock;
        strcpy(this->name, name);
    }
};

int main()
{
    string name = "手机\n";
    market phone(name, 1, 5);
}

在主函数给对象赋值时,name出现没有与参数列表匹配的构造函数"market::market"实例的问题
在更改market类中商品名数据类型和构造函数为string后任然存在该问题

参数类型是char *,传递的是string,不能直接赋值,改为
market phone((char * )name.c_str(),1,5);

string与char[]不兼容,慎用