匿名课程

时间:2013-08-11 11:58:18

标签: c++ abstract-class anonymous-class

在Java中,为了使用模板方法模式,通常会编写以下内容(例如,用于事件处理):

abstract class SomeAbstractClass {
    public abstract void SomeFunction ();
}

//...

SomeAbstractClass obj = new SomeAbstractClass () {
    public void SomeFunction () { /* implementation */ }
};

在C ++中,以下编译:

class SomeAbstractClass {
    virtual void SomeFunction () = 0;
};

// ...

SomeAbstractClass * obj = new ( class : public SomeAbstractClass {
    virtual void SomeFunction () { /* implementation */ }
});

为什么人们通常不这样做?

1 个答案:

答案 0 :(得分:1)

我认为有三个问题出现在匿名类

  • 您不能编写构造函数,因为类没有名称。
  • 不允许初始化列表继承。
  • 捕获值也很困难,最终变量只能访问。