如何修复类型 "const char*" 的 C++ 参数与类型 "char*" 的参数不兼容

How to fix C++ argument of type"const char*" is incompatible with parameter of type"char*"

我正在使用 vs2019,我遇到了一个问题,编译器给我一个错误,但我无法解决 请帮我。 错误是:“const char*”类型的参数与“char*”类型的参数不兼容

Blockquote

   ***  #include <iostream>
#include<cstring>
using namespace std;
class part
{
public:
    char partname[30];
    int partnumber;
    double cost;
    void setpart(char pname[], int pn, double c)
    {
        strcpy_s(partname, pname);
        partnumber = pn;
        cost = c;
    }
    void showpart()const
    {
        cout << "\npartname : " << partname;
        cout << "\npartnumber : " << partnumber;
        cout << "\ncost($) : " << cost;
    }
};
int main()
{
    part part1, part2;
    part1.setpart("handle bolt", 467, 4500);
    part2.setpart("start lever", 549, 2300);
    cout << "\nFirst part : "; part1.showpart();
    cout << "\nSecond part : "; part2.showpart();
}***

您提供给 setpart 的字符串是常量字符串 (const char *)。但是 set 部分以一个 char * 作为参数。由于在您的示例中不会修改 pname,因此您可以将 void setpart(char pname[], int pn, double c) 替换为 void setpart(const char pname[], int pn, double c)