考虑以下代码:
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/