1

C++ の仮想関数について質問があります。この 1 時間は検索に費やしましたが、すぐにはどこにも行きません。あなたが助けてくれることを願っていました。
データの送受信を処理するクラスがあります。クラスをできるだけモジュール化したいので、受信したメッセージを処理する抽象/仮想メソッドを作成したいと思います。
新しいクラスを作成して仮想メソッドを上書きできることはわかっていますが、メソッドをさまざまな方法で実装する新しいクラスの大規模な配列を作成する必要はありません。Java では、例に見られるように、オブジェクトを宣言するときに、コードの本体でリスナーを使用したり、抽象メソッドをオーバーライドしたりできます。

JTextField comp = new JTextField();   
comp.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
        //Handler Code
    }
});

これは C++ で可能ですか、それともこの種の問題に対するより良いアプローチはありますか?

乾杯、よろしくお願いします、
クリス。

4

3 に答える 3

3

質問が似ているように、この他のSO投稿を見てください。C++ 0xサポート匿名内部クラス。

ファンクター (関数オブジェクト) またはラムダが適切な代替手段になる可能性があります。

于 2013-08-19T12:01:44.893 に答える
1

C++ では、新しいクラスを宣言する必要があります。

class MyActionListener: public ActionListener
{
    public:
       void actionPerformed(ActionEvent evt) { ... code goes here ... }
}; 
于 2013-08-19T11:54:37.447 に答える