如何创建我的抽象类的无名派生类的对象?

Des*_*tor 1 c++ java inheritance abstract-class pure-virtual

考虑遵循Java程序:

abstract class Surprising
{       
    void fun()
    {
        System.out.println("fun() is invoked");
    }
}
class myclass
{
    public static void main(String args[])      
    {
        Surprising s=new Surprising() { };
        s.fun();
    }
}
Run Code Online (Sandbox Code Playgroud)

这里我创建了我的抽象类令人惊讶的无名子类的对象,而不是抽象类的对象,因为它不允许在Java中创建抽象类的对象.

什么是等效的C++程序?是否可以在C++中执行此操作?如果是,怎么回事,为什么不允许?

Som*_*ude 6

让我们说我们有班级A:

class A
{
    ...
};
Run Code Online (Sandbox Code Playgroud)

现在要创建它的衍生物,我们使用例如

class B : public A
{
    ...
};
Run Code Online (Sandbox Code Playgroud)

现在要创建一个匿名类的对象,我们根本就不提供类名:

class
{
    ...
} anon_object;
Run Code Online (Sandbox Code Playgroud)

最后我们结合了两种方式,继承和匿名类:

class : public A
{
    ...
} anon_a_derived_object;
Run Code Online (Sandbox Code Playgroud)