簡體   English   中英

匿名課程

[英]Anonymous classes

在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 */ }
});

為什么人們通常不這樣做?

我認為有三個問題出現在匿名類中

  • 您不能編寫構造函數,因為類沒有名稱。
  • 不允許初始化列表繼承。
  • 捕獲值也很困難,最終變量只能訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM