我正在做作业,我似乎找不到错误的原因。当我在大学的电脑上尝试时,strcpy()函数工作正常,现在我试图在家里做,但它不能正常工作。
#include<iostream>
using namespace std;
#include<conio.h>
#include<string.h>
class Employee{
int E_Id;
char*E_Name[30];
int No_Hours;
int Rate_Hour;
public:
void SetData(int Id, char*Name[30], int Hours, int Rate)
{
E_Id = Id;
strcpy(E_Name,Name); //Error Here
No_Hours = Hours;
Rate_Hour = Rate;
}
void DispData()
{
cout<<"Employee ID: "<<E_Id<<endl;
cout<<"Employee Name: "<<E_Name<<endl;
cout<<"Number of Hours: "<<No_Hours<<endl;
cout<<"Rate per Hour: "<<Rate_Hour<<endl;
}
void InputData()
{
cout<<"Give Employee ID: ";
cin>>E_Id;
cout<<"Give Employee Name: ";
cin>>E_Name;
cout<<"Give Number of Hours: ";
cin>>No_Hours;
cout<<"Give Rate per Hour: ";
cin>>Rate_Hour;
}
int GetEId()
{
return E_Id;
}
char*GetEName()
{
return E_Name;
}
int GetNoHours()
{
return No_Hours;
}
int GetRateHour()
{
return Rate_Hour;
}
Employee()
{
PId = 0;
strcpy(E_Name, "")
No_Hours = 0;
Rate_Hour = 0;
}
Employee(int Id, char*Name, int Hours, int Rate)
{
E_Id = Id;
strcpy(E_Name, Name); //Error Here
No_Hours = Hours;
Rate_Hour = Rate;
}
~Employee()
{
cout<<"Obeject Destroyed"<<endl;
}
};
int main()
{
Employee*e;
e = new Employee[10];
int i;
cout<<"Give Data"<<endl;
for(i=0;i<10;i++)
{
(e+i)->InputData();
}
int high = (e+0)->GetNoHours()*(e+0)->GetRateHours();
int loc = 0;
for(i=0;i<10;i++)
{
if((e+i)->GetNoHours()*(e+i)->GetRateHours()>high)
{
high = (e+i)->GetNoHours()*(e+i)->GetRateHours();
loc = i;
}
}
cout<<"Employee with Highest Salary"<<endl;
(e+loc)->DispData();
delete[]e;
getch();
return 0;
}
在这个程序中必须使用指针,使一个数组的10名雇员,并告诉哪个雇员赚取最多的工资。
1条答案
按热度按时间c0vxltue1#
这是不对的
应该是
一个字符数组可以保存一个字符串,一个字符指针数组则是另外一回事。
这是不对的
应该是
因为不能用数组作为函数的参数,所以要用指针来代替,所以如果你想把一个char数组传递给一个函数,这个函数应该用一个char指针来声明。
基本上,您应该使用char数组或char指针,但不能两者结合使用。