4

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

なぜ人々は通常これをしないのですか?

4

1 に答える 1

1

匿名クラスで発生すると思われる3つの問題

  • クラスには名前がないため、コンストラクタを記述できません。
  • 初期化子リストの継承は許可されていません。
  • 値を取得することも難しく、最終変数にしかアクセスできません。
于 2013-08-11T12:03:48.657 に答える