問題タブ [abstract-base-class]
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.
c++ - 抽象基本クラスからのオーバーロードされた関数へのアクセス
この質問は以前に何らかの形で尋ねられたことを知っています。しかし、私はまだ混乱しています。
2つのクラスがあるとします。
クラスAの非仮想関数の可視性をクラスBで公開したい場合....どうすればいいですか?? ...つまり、現在、この方法で非仮想関数を呼び出すことができます
私はこれを避けたいです^
そしてこれを置く解決策
in public B は A の仮想関数を参照します....非仮想関数ではありません...だから、それは解決策ではないと思います。
c# - 派生クラスの型である抽象基本クラスのメンバーを宣言する方法はありますか?
この基本クラスから派生するクラスの型と一致するメンバーを宣言する抽象基本クラスがあるとします。
parent
各派生クラスのフィールドは から派生したものになる可能性があるため、これは機能しませんBaseClass
。parent
のフィールドDerivedClass1
が型のみであることを確認したいDerivedClass1
。だから私はおそらくジェネリックを使うべきだと考えています。
これは紛らわしく循環しているように見えるかもしれませんが、コンパイルされます。基本的には、ジェネリックから派生する必要parent
があるタイプです。したがって、派生クラスは次のようになります。T
BaseClass
問題は、宣言するときに自分で型の一致を強制する必要があることDerivedClass
です。誰かがこのようなことをするのを止めるものは何もありません:
ベースで宣言されたメンバーの型が派生型と確実に一致するように、C# にはこれを行う方法がありますか?
これは、この C++ の質問が尋ねようとしていたものと似ていると思います:派生クラスの戻り値の型を持つ関数を持つ派生クラスの抽象基本クラス
c++ - それ自体をパラメーターとして受け取る抽象基本クラスの仮想純粋メソッド
言葉遣いが下手で申し訳ありませんが、質問の表現方法がよくわかりません。
私は、それ自体のインスタンスを取る純粋な仮想演算子 += を持つ基本クラス A を持っています。派生クラス B では、(A ではなく) B のインスタンスを取るように、基本クラスの operator+= をオーバーライドしたいと思います。
これが機能しない理由は理解しています。2 つのメソッドは、異なる引数を期待するため、異なる関数です。ただし、A から派生したクラスが、派生クラスのインスタンスを引数として取る operator+= を実装することを保証する何らかの方法が必要であると思います。
これに対する解決策を教えてください。どうもありがとう!
python - 別のクラスからプロパティを取得する関数をクラスで使用するにはどうすればよいですか?
クラスに、他のクラスのプロパティを使用する別のクラスの関数を使用させようとしています。
問題の詳細は次のとおりです。
という基本クラスがあるとしましょうWorker
。それぞれWorker
が に取り組みたいと考えていHouse
ます。それぞれに、選択して完了することができる のWorker
リストがあります。Task
それぞれTask
にname
、タスクを完了するのに必要な 、 、 があり、 が実際にタスクを実行できるようにする機能もdescription
あります。energy_cost
do_task
Worker
これをコードで表すと次のようになります。
Worker
しかし、aを実行するために a の属性の1 つにアクセスする必要がある場合はどうなるTask
でしょうか。タスクが完了する速度を指定するWorker
という属性があったとします。work_speed
が何であるかをどのようにTask
知ることWorker
ができwork_speed
ますか? 次のように、 の task_list内のインスタンスWorker
にインスタンスを渡すことができます。Task
Worker
しかし、それは不格好であり、非常に不必要に思えます。
Task
a のクラス定義でそれぞれを継承することもできWorker
ますが、追加の属性は必要なく、do_task
複数の がある場合はメソッドがオーバーライドされTask
ます。
理想的には、Worker
はの属性にアクセスできるようTask
にフォーム内で a を実行できる必要があり、オブジェクト内で定義されたようなプロパティを使用できる必要があります。worker.do_task()
do_task
Worker
energy_cost
Task
どうすればそれを行うことができますか?