首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

strcpy疏失

2013-07-01 
strcpy出错void Employee::SetName(char *pName){strcpy(Name,pName)}void Employee::GetName(char& pNam

strcpy出错
void Employee::SetName(char *pName)
{
  strcpy(Name,pName);
}

void Employee::GetName(char& pName)
{
  strcpy(pName,Name);
}

提示GetName错误

Build
  [C++ Error] employee.cpp(11): E2034 Cannot convert 'int' to 'char *'
  [C++ Error] employee.cpp(11): E2342 Type mismatch in parameter '__dest' (wanted 'char *', got 'char')
[解决办法]
void Employee::GetName(char& pName)
{
  strcpy(pName,Name);
}

pName是一个字符,不能转换为指针。按你的意思,应该是:
void Employee::GetName(char* pName)
{
  strcpy(pName,Name);
}
[解决办法]
void Employee::GetName(char& pName)
{
  strcpy(pName,Name);
}

这里面的参数为什么要用引用,这样就变成了pName是个字符类型,而不是一个字符数组。
[解决办法]


void SetName(char *pName)
{
    char Name[100];
    strcpy(Name,pName);
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   char pName[100]="1212";
   SetName(pName);
}

[解决办法]
指针类型错误
[解决办法]
函式參數傳遞的方式有三種 : 傳值方式 . 傳址方式 . 傳參考方式
class Employee
{
private:
char Name[1000];
int Age;
long Salary;
public:
void SetName(char *pName);
void GetName(char *pName); //函式參數傳遞...数组使用傳址方式
void SetAge(int nAge);
int  GetAge(void);
void SetSalary(long lSalary);
long GetSalary();
};

void Employee::GetName(char *pName)
{
strcpy(pName, Name);
}

热点排行