В этом коде мы сделали идентификатор указателя const char, так как это char, поэтому он должен хранить только один адрес элемента. но в конструкторе по умолчанию мы присвоили этому идентификатору «NULL», как этот идентификатор содержит 4 символа? и в параметризованном конструкторе мы передаем массив i [] и присваиваем значение id, опять же, как char id хранит полный массив? далее, почему нам нужен const char?
class Employee
{
public:
string name;
const char *id;
int age;
long salary;
Employee ()
{
name = "NULL";
id = "NULL";
age =0;
salary = 0;
};
// Employee(string n, char id[], int a, long s): name(n), id(id), age(a), salary(s)
// {};
Employee (string n,const char i[], int a, long s) //const use krne k baighar warning a rhe
{
name = n;
id = i;
age = a;
salary = s;
};
void getData()
{
cout<< "Employee ID: "<< id <<endl;
cout<< "Employee Name: "<< name <<endl;
cout<< "Employee Age: "<< age <<endl;
cout<< "Employee Salary: "<< salary <<endl;
};
};
Я смущен тем, что если id - это char, то как он содержит строковый литерал из 5 символов. Тип CHAR может хранить только один символ, но если я делаю его указателем, то он содержит много символов. Пожалуйста, проясните этот момент, я очень сбит с толку, как он работает.