問題タブ [inheritance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2816 参照

c++ - 基本クラスの変数を使用する簡単な方法はありますか?

派生クラスがある場合、次以外のメソッドから変数を参照する簡単な方法はありますか?

編集
たまたま、代わりに関数を使用してこの問題を説明するページを見つけました: Template-Derived-Classes Errors。テンプレートクラスを使用すると明らかに違いがあります。

0 投票する
5 に答える
34245 参照

vb.net - オーバーライドされた Child インスタンス呼び出し基底クラス メソッドから

次のコードを検討してください。

Dog のインスタンスを Animal に変換/ctype し、Animal.Speak を呼び出すにはどうすればよいですか?

0 投票する
6 に答える
247 参照

php - 1 つのアプリの複数の特殊なバージョンを管理するためのベスト プラクティス

私は多くの顔を持つ Web アプリケーションを持っており、これまでテーマを作成することでこれを実装してきました。テーマは、共通のバックエンドで使用される html、css、およびイメージのセットです。

物事は次のようにレイアウトされています:

また、Web アプリケーションの各インスタンスには、使用するテーマを記述した構成ファイルがあります。例:

現在、新しいビジネス ルールにより、単に html/css/images を変更し、バックエンドを変更する必要があるだけでは達成できない特定のテーマを変更するよう求められています。場合によっては、これらの変更をテーマのグループに適用する必要があります。

これをディスクに最適に配置する方法と、コードで処理する方法を考えています。きっと他の誰かがこれに反対したに違いない。

1つのアイデアは次のとおりです。

次に、共通のコードで、最初に検索されるinclude_pathものを設定し、次に.code/theme1code/common

LogoutPage次に、たとえば のクラスを特殊化したい場合は、ページを下の同じパスにtheme2コピーするだけで、特殊化されたバージョンが取得されます。code/commoncode/theme2

この考え方の問題点の 1 つは、同じ名前のクラスが複数存在することです。理論的には、それらが同じ実行に含まれることはありませんが、元の基本クラスを拡張することはできません。

では、基本クラスに一意の名前を付けたらどうなるでしょうか? 例えばTheme1LogoutPage extends LogoutPage。私が予見できる問題の 1 つは、いくつかの一般的なコード (Dispatcher など) が を参照する場合LogoutPageです。ディスパッチャーに条件を追加することはできますが、これを処理するためのより透過的な方法があるのだろうか?

私が考えることができる別のオプションは、テーマごとに別々のブランチを維持することですが、これは大変な作業になる可能性があると思います.

最後に考慮すべきことは、機能が 1 つのテーマに由来し、共通のコードベースにマージする必要がある場合があるということです。

任意の入力をいただければ幸いです。違いがあれば、それは LAMP 環境です。

0 投票する
7 に答える
2303 参照

c++ - C++ クラスの友人

私はそのようなコードをコンパイルしようとしています:

しかし、 get 'CCube::Position' は関数 main() で 3 回アクセスできません。クラスCPositionをCCubeの外で宣言して、将来CBallなどの新しいクラスで使用できるようにしたいのですが、継承を使用せずに機能させるにはどうすればよいですか。出来ますか :)?

よろしく、 PK

0 投票する
2 に答える
420 参照

php - ポリモーフィズムと Factory パターンを使用して繰り返し条件を削除する

0 投票する
10 に答える
1254 参照

c++ - C++ で仮想継承よりも優れた方法を探している

OK、私は C++ でやや複雑なシステムを持っています。簡単に言えば、サード パーティの抽象基本クラスにメソッドを追加する必要があります。サードパーティは、新しい機能を必要とする大量の派生クラスも提供しています。

標準の Shape インターフェースといくつかの一般的な形状を提供するライブラリを使用しています。

さて、ここに私の問題があります。Shape クラスにも GetArea() 関数を含めたいと思います。だから私はただやるべきだと思う:

次に、ImprovedShape と Square を継承する ImprovementSquare を作成します。さて、ご覧のとおり、恐ろしいダイヤモンドの継承問題を作成しました。これは、サード パーティのライブラリが Square や Circle などに仮想継承を使用している場合、簡単に修正できます。しかし、それを実行させるのは合理的な選択肢ではありません。

では、ライブラリで定義されたインターフェイスにちょっとした機能を追加する必要がある場合はどうすればよいでしょうか? 良い答えはありますか?

ありがとう!

0 投票する
2 に答える
893 参照

oracle - Oracle 10gR2でプロパティなしでTYPEを宣言する方法はありますか

メソッドのみを持つ基本オブジェクトを作成したいと考えています。オブジェクトはQUEUABLE_OBJECT_TYPEあり、ENQUEUEメソッドがあります。これらのメッセージ (プロパティ) のペイロードは、このオブジェクトをサブタイプ化することによって追加されます。

できないように聞こえるエラーが表示されます。

PLS-00589: オブジェクト型"QUEUABLE_OBJECT_TYPE"に属性が見つかりません

このエラーを回避する方法を知っている人はいますか? または、サブタイプでスーパータイプのこのプロパティを非表示にすることは可能ですか?

どちらでも受け入れられる答えです。

0 投票する
9 に答える
3829 参照

c# - クラスがデフォルトでシールされないのはなぜですか?

シールされたキーワードの存在は、他のクラスがそれを継承できるかどうかはクラス作成者の決定であることを示しているので、なぜクラスはデフォルトでシールされておらず、明示的に拡張可能であるとマークするキーワードを使用していないのでしょうか?

多少異なることは知っていますが、アクセス修飾子はこのように機能します。デフォルトは制限的で、より完全なアクセスはキーワードの挿入によってのみ許可されます。

よく考えていない可能性が高いですが、人道的にお願いします!

0 投票する
5 に答える
2268 参照

c# - AC#クラスが暗黙的および明示的に1つのインターフェイスから継承できるのはなぜですか?

今日、私は1つのC#クラスが暗黙的および明示的な方法の両方で1つのインターフェイスを継承できることに気付きました。これは私を驚かせます。C#がこのように機能する場合、1つのインスタンスは、異なる方法で参照されたときに異なる動作をする可能性があります。

上記のコードが実行され、出力されます

このC#の設計は、動作の不整合を引き起こすと思います。おそらく、1つのC#クラスが暗黙的または明示的な方法で1つのインターフェイスから継承できることが必須ですが、両方を継承することはできません。

C#がそのように設計されている理由はありますか?

0 投票する
5 に答える
18840 参照

c++ - 別のヘッダー ファイルのクラスからどのように継承しますか?

依存関係の問題があります。と の 2 つのクラスがGraphicありImageます。それぞれに独自の .cpp および .h ファイルがあります。私はそれらを次のように宣言しています:

Graphic.h:

Image.h:

p>

コンパイルしようとすると、次のエラーが発生します。

Graphicfromの前方宣言を削除するとImage.h、次のエラーが発生します。