enum class inside other class 的 setter 和 getter
setters and getters for enum class inside other class
我有基础 class Employee
和派生 class concreteEmployee
.
class Employee {
virtual void &getStatus() {} ??
}
class concreteEmployee : public Employee {
public:
enum class Status {
Intern,
Worker,
Manager
};
Status status;
void setStatus() {
?????
}
... &getStatus() { // virtual from Employee
return Status; ???
}
我的指针向量是 vector<shared_ptr<Employee>> Firm;
,我通过引用传递 sourceEmployee
。
我想做的是:
在雇用新员工时设置具体状态,例如“Worker
”。
void hireEmployee(vector<shared_ptr<Employee>>& sourceEmployee) {
sourceEmployee.emplace_back(new concreteEmployee(fillName, fillSurname));
sourceEmployee.back()->status = ???
我想那样做,而不是在 concreteEmployee
等中使用 std::string Status = "Worker"
字段。
和 classic setter/getter。
我想从 Employee
class 获取 concreteEmployee
的状态并将其打印在某处。我有派生对象的向量(使用 std::shared_ptr
)并且想获得这样的状态?
void employeeShowcase(const vector<shared_ptr<Employee>>& sourceEmployee) {
cout << sourceEmployee[index]->getStatus()
... // output should be like i.e "Worker"
}
如果您的员工状态应该对您的 class 的消费者可见,那么这意味着您必须在 Employee
的范围内定义该枚举,而不是 ConcreteEmployee
我有基础 class Employee
和派生 class concreteEmployee
.
class Employee {
virtual void &getStatus() {} ??
}
class concreteEmployee : public Employee {
public:
enum class Status {
Intern,
Worker,
Manager
};
Status status;
void setStatus() {
?????
}
... &getStatus() { // virtual from Employee
return Status; ???
}
我的指针向量是 vector<shared_ptr<Employee>> Firm;
,我通过引用传递 sourceEmployee
。
我想做的是:
在雇用新员工时设置具体状态,例如“
Worker
”。void hireEmployee(vector<shared_ptr<Employee>>& sourceEmployee) { sourceEmployee.emplace_back(new concreteEmployee(fillName, fillSurname)); sourceEmployee.back()->status = ???
我想那样做,而不是在
concreteEmployee
等中使用std::string Status = "Worker"
字段。 和 classic setter/getter。我想从
Employee
class 获取concreteEmployee
的状态并将其打印在某处。我有派生对象的向量(使用std::shared_ptr
)并且想获得这样的状态?void employeeShowcase(const vector<shared_ptr<Employee>>& sourceEmployee) { cout << sourceEmployee[index]->getStatus() ... // output should be like i.e "Worker" }
如果您的员工状态应该对您的 class 的消费者可见,那么这意味着您必须在 Employee
的范围内定义该枚举,而不是 ConcreteEmployee