c++ - 私有(private)继承 : How do I make object of the Base Class ( which has got pure virtual methods)?

标签 c++ pure-virtual virtual-functions private-inheritance

考虑以下代码:

class Base
{
  protected:
  virtual void methodDefinedInBase() = 0;
}

Class Derived: private Base
{
  public:
  void someMethod();
  protected:
  virtual void methodDefinedInBase()
  {
    std::cout<<"From B"<<std::endl;
  }
}

在上面的代码中,我可以创建“Derived”类型的对象。 C++ 允许我从派生类中的“someMethod()”访问方法“methodDefinedInBase()”。但是,如何创建“Base”类型的对象?

谢谢,

毗湿奴。

最佳答案

正如 Beta 在评论中指出的那样,您无法实例化抽象基类(具有纯虚方法的基类)。您只能实例化实现这些纯虚方法的派生类。无论您使用的是公共(public)继承还是私有(private)继承,都是如此。

关于c++ - 私有(private)继承 : How do I make object of the Base Class ( which has got pure virtual methods)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6432771/

相关文章:

c++ - 使用 XP Visual Styles list 时状态栏控件无法正确调整大小

c++ - 在命名空间内定义函数还是限定函数?

c++ - 在纯虚类对象的容器中查找

c++ - 调用错误的纯虚方法

C++ 虚方法引发 EXC_BAD_ACCESS(仅当由 Objective-C++ 调用时)

c++ - 如何在 C++ 中使用 Bluez5 DBUS API 来配对和连接新设备?

C++ - WinAPI 获取所有连接的 USB 设备的列表

C++:在非虚函数中使用纯虚函数

c++ 纯虚类的前向声明

c++ - 错误 C2660 : 'Aba::f' : function does not take 0 arguments