我有这种情况,我从子类继承。
父母>>儿童>> SubChild
在SubChild中,我正在编辑两个函数,其中一个 func1 在Parent和Child中具有一些其他功能,并且使用三个类的所有功能正常工作。
另一个函数 func2 只有Parent中的功能,所以为了在SubChild中利用Parent功能,我在Child中添加了一个声明来做这个解决方案。
class Parent
{
protected:
virtual void func1() override;
virtual void func2(type *Pointer) override;
...
};
class Child : public Parent
{
protected:
virtual void func1() override;
virtual void func2(type *Pointer) override {Parent::func2(Pointer);};
class SubChild: public Child {
protected:
virtual void func1() override;
virtual void func2(type *Pointer) override;
...
};
实际上我的错误与func2中第一行的继承有关,但可能包含与Omnet ++相关的其他原因,我将在其中提出另一个问题。但我想通过提出这个问题来澄清这一步。
这是使其正常运行的正确方法还是我违反了一些编码规则?
修改:从
中删除了类型和* virtual void func2(type *Pointer) override {Parent::func2(type *Pointer);};