如上所述,我正在尝试创建一个名为 increment_rate 的静态变量名称,该名称对所有 Employee 类的默认值为 1.05。
但是,Developer 类(派生自 Employee 类(默认increment_rate为 1.10(对程序员来说是的(。
在 Employee 类中,我有一个名为 apply_incr(( 的公共方法。无论何时调用它,标准员工(例如基类员工,或其他子类,如文员或看门人(只享受 1.05 的标准increment_rate,而子类开发人员应该自动享受 1.10。
在 python 中,如果基类和派生类都具有变量increment_rate,则默认情况下,方法解析顺序将自动选择派生类的increment_rate。 但是,在C++中,我将如何实现如此类似的功能,以便它会自动为开发人员应用 1.10,而其他人只能获得 1.05?
因为所有文员或所有看门人或所有员工都有相同的 1.05 比率,这就是为什么我选择使用类范围的静态成员,而不是对类的每个实例唯一的普通成员。
谢谢!
我不确定为什么需要静态变量。假设apply_incr()
不是静态的,你很可能像这样:
class Employee {
public:
virtual double getIncrementRate() const { return 1.05; }
}
class Developer : Employee {
public:
virtual double getIncrementRate() const override { return 1.10; }
}