求教c++中关于类的继承的问题
class Employee//普通职员类
{
int salary;
public:
Employee(int n=0) { salary=n; }
int get_salary() { return salary; }
};
class Manage: public Employee//部门经理类
{
```//中间的数据省略了
public:
```
int sum_salary=0;
sum_salary+=get_salary();
//问题是这里要访问到基类Employee中的salary是不是只能用调用get_salary()函数这种方式啊?
//如果是,那么在定义基类的时候就会要考虑继承的问题了,这样不是给软件复用增加麻烦吗?
}
[解决办法]
public:
protected: <--
private:
本来对象划分就是要看具体需求来做,不变的需求根本不需要多思考
你对需求的变化范围把握的越精确,你定义基类和派生类就越容易复用
[解决办法]
因为class中 默认的属性是private的 所以要想访问它就必须用一个方法来访问
第二个问题 要看实际的开发需求了
[解决办法]
在Manager类里面是可以直接访问salary的,在外部比如main函数里面,因为salary是private,所以不能直接访问,需要有接口
[解决办法]
是的。但是定义基类的时候哪有考虑到派生类,基类只要提供自己的接口操作自己的成员就可以了,它不需要感知派生类,更无须对派生类负责。
[解决办法]
如果想要在派生类成员中访问基类成员,而且不想让用户访问该基类成员,则应该将该基类成员的访问权限设置为projected。