如何修复类型 "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)
我正在使用 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)