C++ 重写原始继承函数后调用该函数
我试图修改从基类继承的类的私有成员。问题是在派生类中,我重写了设置私有成员的方法。在下面的代码中,我想使用重写的方法setTime修改_a._time和b._time 基类C++ 重写原始继承函数后调用该函数,c++,class,inheritance,overriding,private,C++,Class,Inheritance,Overriding,Private,我试图修改从基类继承的类的私有成员。问题是在派生类中,我重写了设置私有成员的方法。在下面的代码中,我想使用重写的方法setTime修改_a._time和b._time 基类 class timeClass { public: void setTime(double time){ _time = time;} double getTime(){ return _time;} private: double _time; } 固有一级
class timeClass
{
public:
void setTime(double time){ _time = time;}
double getTime(){ return _time;}
private:
double _time;
}
固有一级
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;
}
我想做的事可能吗?谢谢。你应该这样做:
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
}
@死杰克:很高兴它有帮助:)出于某种原因,当我运行b.setTime(1.0)时,时间没有更新;我不能发布更多的代码了,但你能猜出会发生什么吗?@dead\u杰克:很难说。我建议你问一个新问题,并发布相关代码