C++ 我可以拥有一个必须从非抽象基重写的虚拟函数吗

C++ 我可以拥有一个必须从非抽象基重写的虚拟函数吗,c++,C++,假设我有基类和派生类 class MyBaseClass { public: virtual void MustBeOverRidden() { DoSomething(); } }; class MyDerivedClass : public MyBaseClass { public: void MustBeOverRidden() { MyBaseClass::DoSomething(); DoSomethingElse

假设我有基类和派生类

class MyBaseClass
{
public:
   virtual void MustBeOverRidden()
   { 
      DoSomething();
   }
};

class MyDerivedClass : public MyBaseClass
{
public:
   void MustBeOverRidden()
   { 
      MyBaseClass::DoSomething();
      DoSomethingElse();
   }
};
如果基类是抽象的,我可以声明

  virtual void MustBeOverRidden() = 0;
然而,在这种情况下,基类功能通常会作为派生功能的一部分被调用。在这种情况下,有没有办法强制所有派生类重写基类函数?或者,我可以为纯虚拟函数提供一个实现吗


编辑:纯虚拟函数的实现不起作用,因为我需要能够实例化我的基类,这导致错误C2259:“MyBaseClass”:无法实例化抽象类是的,可以强制派生类重写虚拟函数,并提供一个实现:

class MyBaseClass
{
public:
   virtual void MustBeOverRidden() = 0;
};

void MyBaseClass::MustBeOverRidden()
{ 
    DoSomething();
}

你是说
类MyDerivedClass:PublicMyBaseClass
?是的,哈尔,很好!执行此操作时,基类仍然是抽象的。