【发布时间】:2020-10-18 01:29:43
【问题描述】:
给定一个名为 Job 的抽象类和其他继承它的类,如 Teacher、Worker 等......
我希望这些类继承静态变量之类的东西-我的意思是,因为根据我的阅读,它不允许继承静态变量-对于Job(如Salary),每个类具有不同的值,我该怎么做?
到目前为止, 在 Teacher 的 c'tor 中,我为每个名为 salary 的对象创建了一个局部变量,使其等于 100,但这似乎并不聪明,因为根据我的工作,所有老师都有相同的薪水。
例如:
class Job{
int salary;
std::string tag;
public:
Job(int salary,std::string tag;) : salary(salary), tag(tag)
{}
};
class Teacher: public Job{
public:
Teacher(std::string tag) : Job(100,tag){}
};
class Worker: public Job{
Worker(std::string tag) : Job(200,tag){}
};
每个工人的薪水=100,但我希望这与班级工人有关,而不是与每个对象有关。 (我可以将其定义为每个类的静态值,但在 100 个类中声明相同的静态值并继承一个具有该静态值的类似乎并不明智)
【问题讨论】:
-
您能否为您当前的方法添加一些代码,以及您希望它如何工作?
-
@MikaelH 正在努力
-
直到现在,在教师的 c'tor 中,我为每个名为salary 的对象创建了一个局部变量,使其等于 100,但这似乎并不聪明,因为所有教师都有根据我的工作,工资是一样的。 相反,这是完全正确的。您发布的代码没有任何问题(而且,有一天,您将能够给个别教师加薪 :)
-
@PaulSanders 为什么每个工人都应该有一个名为 Salary 的变量,其值为 200,而 所有 工人都可以共享它
-
@AdrianMole 或者那些禁止使用STL的...
标签: c++ class c++11 inheritance static