如何解决如何修复“ const char *”类型的C ++参数与“ 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字符串(const char *)。但是设置部分以char *作为参数。由于在您的示例中不会修改pname,因此您可以将type
TMyRecord = record
private
FIndex : Integer;
FSize : Integer;
procedure SetSize(const Value: Integer);
public
property Index : Integer read FIndex write FIndex;
property Size : Integer read FSize write SetSize;
end;
var
MyList : array [1..5] of TMyRecord;
...
procedure TMyRecord.SetSize(const Value: Integer);
begin
// use FIndex as needed...
FSize := Value;
end;
...
for I := Low(MyList) to High(MyList) do
MyList[I].Index := I;
...
MyList[SomeIndex].Size := 31000;
替换为void setpart(char pname[],int pn,double c)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。