我正在尝试修改从基类继承的类的私有成员。问题是在派生类中,我重写了设置私有成员的方法。在下面的代码中,我想使用重写的方法setTime修改_a._time和b._time。
基础课程
class timeClass
{
public:
void setTime(double time){ _time = time;}
double getTime(){ return _time;}
private:
double _time;
}
固有的第1课
class a : public timeClass
{
public:
void doStuff(){ }
private:
double things;
}
固有的第2课
class bClass : public timeClass
{
public:
void setTime(double time)
{
_time = time; //can't access _time since its private
_a.setTime = time;
}
private:
aClass _a;
}
我尝试做的甚至可能吗?感谢。
答案 0 :(得分:2)
这是你应该怎么做的:
void setTime(double time)
{
timeClass::set_time(_time);
// ^^^^^^^^^^^
// Will invoke the base class's set_time() function
_a.setTime(time);
// ^^^^^^^^^^^^^
// Will invoke setTime() on the `_a` subobject
}