0

ライブラリ(私が触れられないライブラリ)へのヘッダーファイルがあります。しかし、インスタンス化にさらに機能を追加する必要があります。これどうやってするの?

class AA: public QObject
{
    public:
        void AA(); //<-- I need to add some more functionality to this
}

私が知っている唯一の方法は、AA を同じ名前の AA の新しいクラスにサブクラス化できる場合であり、メイン プログラムからは 2 番目のクラスを使用することが望まれます。しかし、これは不可能だと思います。

4

1 に答える 1

1

既にコンパイルされている (ソースがない) コードの場合、異常な手段 (アセンブリ言語を使用してメモリにパッチを適用する) を使用しない限り、コードを傍受することはできません。これは、コンストラクターを「フック」できる特別なメカニズムが QObject にないことを前提としています。

制御できるコードの場合、単純に AA をサブクラス化し、サブクラスのコンストラクターで独自の機能を提供できます。

于 2013-07-12T15:50:47.610 に答える