Я делаю вопросы о большом выпуске Big C++ 2nd edition, и я занимаюсь классами, я застрял на вопросе. В основном у меня есть классы, называемые «человек», а один называется «Pemployee», мне нужно написать функции-члены «Pemployee».Как получить личные данные из функций-членов? C++
Они дали мне декларации, необходимые для реализации определений.
Что я не могу сделать, это написать имя вызова, так как ему нужно вызвать приватную переменную «person_data», которая является объектом-человеком, я не могу получить доступ к имени строки напрямую, кроме функции-члена «person» имеет функцию get_name, которая возвращает void, я не понимаю, как вернуть строку, если я не могу вернуться из другого определения.
Вот два класса.
class Person
{
public:
Person();
Person(string pname, int page);
void get_name() const;
void get_age() const; //returns void
private:
string name;
int age; // 0 if unknown
};
class PEmployee
{
public:
PEmployee();
PEmployee(string employee_name, double initial_salary);
void set_salary(double new_salary);
double get_salary() const;
string get_name() const; //assuming I need to call person get_name
private:
Person person_data;
double salary;
};
Итак, еще раз, как я называю «Pemployee» get_name вернуть имя строки из person_data частной переменной
Основываясь на приведенном вами образце кода, невозможно получить 'Person :: name' извне класса (без обмана, например, с использованием глобальных переменных). –
Это не имеет большого смысла, когда геттеры недействительны. get_name должно возвращать строку и get_age, int. Изменив это, вы должны просто вызвать имя пользователя get_name в PEmployee get_name – rcmgleite
Вот почему я не получил его, если get_name в объекте «person» вернул строку, я мог бы вызвать функцию-член этого, но это не значит, поэтому я смущенный, я не уверен, что я не понимаю какой-то принцип или если его опечатка в книге ... – user2076774