#string #class #pointers #reference #char
#строка #класс #указатели #ссылка #char
Вопрос:
Я использую vs2019, и у меня проблема, компилятор выдает мне ошибку, однако я не могу ее решить, пожалуйста, помогите мне. ошибка: аргумент типа «const char *» несовместим с параметром типа «char *»
Цитата из блока
*** #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();
}***
Ответ №1:
Строки, которые вы предоставляете setpart, являются строками const ( const char *) . Но часть set принимает символ * в качестве параметра. Поскольку pname не будет изменен в вашем примере, вы можете заменить void setpart(char pname[], int pn, double c)
на void setpart(const char pname[], int pn, double c)
Комментарии:
1. это верно, чувак, но я пробовал это раньше, однако это не сработало. большое вам спасибо, теперь это работает.