在期待“const char”的同时获得“char”

时间:2014-01-07 12:39:29

标签: c++ class char const strcpy

我写了主要的下一个代码:

int main{

    Employee *employee1 = NULL;

    char *empName1=NULL;

    char *workHours[7];

    for (int ii=0;ii<7;ii++)
    {
        workHours[ii] = new char[5];
    }


    if (empName1 != NULL) {delete empName1;}
          empName1 = new char[y_str-x_str];

    // I read "workHours[ii]" from the stdin using strncpy
     // here There's a block of code that is irrelevant to my question...
     //......
     //..

    employee1 = new Employee(empName1,y_int,workHours);  
}

现在,Employee是名为“Employee”的类中的构造函数,这里是类:

class Employee {
public:

Employee(const char* employeeName, int salary, const char** workingHours);

char* getName();

int getSalary();

int calcWeeklySalary();

virtual ~Employee();


private:
      char name[MAX_LINE_SIZE];
      int empSalary_;
      char* workHours[7];
};

构造函数的实现:

    Employee:: Employee(const char* employeeName, int salary, const char** workingHours)
    {
        int i=0;
        strcpy(name,employeeName);
        empSalary_=salary;
        for(i=0; i<7; i++)
        {
        strcpy( workHours[i] ,workingHours[i]);
        }

   } 

我想将一个字符串从“employee”复制到“name”(类中的私有变量),也从“workingHours [i]”复制到“workHours [i]”(类的私有),使用strcpy作为你可以看到,strcpy第二个参数必须是const char *已知 所以,我的问题是:合法的是我做了什么?我的意思是 - “employee”是char *,“workingHours”是char **,而在Employee的签名中我写了“const”。

如果不是 - 有没有其他方法将字符串从Employee的参数(由main发送)复制到类的私有变量?

1 个答案:

答案 0 :(得分:1)

假设employeeName =“你好” 使用const char * employeeName作为参数意味着你无法更新该点的内容,我表示你无法将hello更改为hallo。你的代码没问题