C++ 将字符数组传递给函数c++;
假设我有以下几点:C++ 将字符数组传递给函数c++;,c++,arrays,C++,Arrays,假设我有以下几点: char cipan[9]; void setCipan(const char* new_cipan) { strcpy(cipan, new_cipan); } const char* getCipan() const { return cipan; } 那么我应该传递给函数什么呢?“获取和设置”方法如何 我现在就是这样做的 集合方法 void setCipan(char cipan[]){ this->cipan = cipan; } 以及
char cipan[9];
void setCipan(const char* new_cipan)
{
strcpy(cipan, new_cipan);
}
const char* getCipan() const
{
return cipan;
}
那么我应该传递给函数什么呢?“获取和设置”方法如何
我现在就是这样做的
集合方法
void setCipan(char cipan[]){
this->cipan = cipan;
}
以及get方法
char getCipan(){
return cipan;
}
我在编译时出错了
我完全迷糊了。。有人能解释一下我应该传递给函数什么吗
class userData{
private:
string name;
char dateCreate[9];
void userDataInput(string name,char dateCreate[]){
this->name = name;
this->dateCreate = dateCreate;
}
public:
//constructor
userData(string name){
userDataInput(name,dateCreate);
}
userData(string name,char dateCreate[]){
userDataInput(name,dateCreate);
}
//mutator methods
void changeName(string name){this->name = name;}
void changeDateCreate(char *dateCreate){this->dateCreate = dateCreate;}
//accesor methods
string getName(){return name;}
char *getDateCreate(){return dateCreate;}
};
我会做以下几件事:
char cipan[9];
void setCipan(const char* new_cipan)
{
strcpy(cipan, new_cipan);
}
const char* getCipan() const
{
return cipan;
}
当然,更好的方法是使用std::string
:
void setCipan(const string& new_cipan)
{
cipan = new_cipan;
}
string getCipan() const
{
return cipan;
}
- 构造函数的目的是初始化类变量。我认为没有必要在构造函数中调用另一个方法来进行初始化
dateCreate
是类范围变量。您只是将其传递给一个方法,然后将其重新分配给dateCreate
。赋值操作不会将一个数组的元素复制到另一个数组,并且是无效的操作
要复制数组元素,请使用
std::copy
。正确粘贴完整的代码。请参阅什么是“函数”和什么是“错误?”get方法需要声明为char*
,不是吗?为什么要经历使用char数组的所有麻烦?改为使用字符串并免费获取所有库函数。