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数组的所有麻烦?改为使用字符串并免费获取所有库函数。