const Name name = it->name();
const Age age = it->age();
const Level level = it->level();
или
const Name name = employees[i].name();
const Age age = employees[i].age();
const Level level = employees[i].level();
будет работать нормально.
Однако я настоятельно рекомендую вам возвращать каждый из указанных выше пунктов в качестве ссылок, поскольку в целом это будет происходить намного быстреечем сделать копию объекта.
т.е.
class Employee
{
public:
// Employee (arguments);
// virtual ~Employee ();
void name(Name const & name) { name_ = name; }
Name& name() { return name_; }
const Name& name() const { return name_; }
void age(Age const & age) { age_ = age; }
Age& age() { return age_; }
const Age& age() const { return age_; }
void level(Level const & level) { level_ = level; }
Level& level() { return level_; }
const Level& level() const { return level_; }
private:
Name name_;
Age age_;
Level level_;
};
Затем вы можете получить доступ к значениям по ссылке следующим образом:
const Name& name = it->name();
const Age& age = it->age();
const Level& level = it->level();
Это также означает, что вы можете изменитьзначения как это:
it->name() = "Goz";
it->age() = 33;
it->level() = "Programmer";