ヘッダーを変更せずにクラスに機能を追加することは、C++や他のコンパイル言語で可能ですか?ヘッダーを変更せずにC++クラスを拡張する
JavaScriptでは、オブジェクトを作成した後にオブジェクトに関数を追加できます。 C++では何か遠隔操作が可能ですか?私はいくつかのroutine.o
ファイルをユーザに提供し、彼らはそれを拡張する必要があり、
void routine::NeverBeforeDeclaredFunction() { ... }
許可されていません。この正確な例のようなものではなく、同様のものがあるためにのために
使用例は、でしょうか?私は、このクラスに関数ポインタの配列を持たせることを考えました。そして、ユーザーがその配列を独自の関数に取り込むようにしました。しかし、プライベート変数へのアクセスやthis
へのアクセスなどの利点はありません。
¤はい、継承を使用できます。継承とオープン・クローズの原則についてお読みください。乾杯、 –
あなたのニーズに合わせて継承しませんか?すなわち、あなたのクラスのユーザーはそれを継承し、その上で拡張することができます。 –
継承は別の名前の新しいクラスを作成します。コードの残りの部分がクラス名が 'routine'であると期待していない場合には、これはうまくいくでしょう。 – Mikhail