問題タブ [derived]
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++ - ポリモーフィングされたクラスのスタック
親愛なる C++ 専門家の皆様。問題が発生しました。1 つの抽象クラス base_class と 2 つの派生クラス (sippeers と dbget) を持つプログラムがあります。また、スレッドが 2 つあります。最初のスレッドはユーザーからコマンドを取得し、2 番目のスレッドはこれらのコマンドを処理します。どちらの派生クラスも異なるコマンドを表します。そのため、ある種のスタックを作成する必要があります。最初のスレッドからユーザー コマンドを配置し、2 番目のスレッドでそれらを取得して処理する必要があります。すべてのコマンドに対して 1 つのスタックを作成するには、ポリモーフィズムを使用する必要があります。まず、std::list を使用してみました。しかし、最初の問題がありました。抽象クラスのリストを作成できません。次に、boost::ptr_list を使用しようとしましたが、2 番目の問題がありました。最初のスレッドで作成されたクラスが、それらを作成したプロシージャの最後で消えてしまいます。したがって、ポインタは違法になります。質問:どのような認識を使用する必要がありますか? 派生クラスのすべてのコピーを保存する必要があるようです。しかしここで?
java - Java 派生クラスがインスタンスを自動的に作成しない
コードの作成時に派生クラスによって自動的に設定されるインスタンス変数を持つ基本抽象ロガー クラスがあります。したがって、ここに基本クラスがあります:
Android ロガーの派生クラスを作成します。コンストラクターを自動的に呼び出したいのですが、すべてのログ機能から何も結果が得られないため、これは機能していないようです。
なぜこれが機能しないのですか?基本クラスで静的関数を呼び出すと、ログが取得されません。
AndroidLog クラスを編集するだけで、または AndroidLog に依存しない CLog クラスを編集して、これを機能させることはできますか?
ruby - Ruby でのスーパー メソッドの呼び出し
継承階層を持つクラスを Ruby で定義しようとしていますが、基底クラスのメソッドの 1 つを派生クラスで使用したいと考えています。ねじれは、私がいる正確なメソッドを呼び出したくないということです。別のメソッドを呼び出したいのです。以下は機能しませんが、それは私がやりたいことです(基本的に)。
javascript - JSON: キーから派生した属性を処理する方法は?
アプリケーションに次のような JSON オブジェクトがあります。
プロパティfile
とurl
は常にそれぞれのキーから派生できるため、現在、コードで上記のオブジェクトを次のように定義しています。
ただし、file
とurl
は派生属性であるため、それらをオブジェクトに追加するのは冗長に思えます。しかし、キーではなく各ページの値を渡すため、それをオブジェクトにも追加する必要があり、これも冗長になります。このような:
今、私は3つの異なるアプローチを持っていますが、どれもあまり好きではありません. これはかなり一般的な問題だと思いますが、どのようにアプローチしますか? また、派生属性が複数回使用される場合はどうなるでしょうか?
inheritance - 「ベース」値は、オーバーライドされたメンバーのベース実装を直接呼び出すためにのみ使用できます
base
ここの実装を呼び出せないのはなぜですかf
:
を呼び出すとbase.f
、次のコンパイラ エラーが発生します。
f
単一の引数を取るように変更すると、コンパイルされます。おそらくこれは、カリー化されたパラメーターとタプルされたパラメーターに関係していますが、上記のコードは私には問題ないようです。
c# - オートマッパーとクラス階層
次のソースを考えると:
目的地:
そして、このマッピング:
ただし、これにより、MyString が DestDerived にマップされていないというマッピング エラーが発生します。何を与える?すべての派生型で基底クラスのプロパティのマッピングを本当に繰り返す必要がありますか (実際のコードには複数のサブクラスがあります)。
編集:
正確な例外は、DestDerived の次の 1 つのプロパティをマップできませんでした: MyString です。カスタム マッピング式を追加するか、 DestDerived のプロパティを無視するか、名前を変更します。
c++ - 派生クラスは継承された関数にアクセスできませんか?
継承を含む非常に単純なプログラムを作成しています。親クラスの「保護された」領域に関数を配置しましたが、子クラスからアクセスできなくなりました。これが私のコードです:
後で、次のように導出します。
その後、実際に getPrice() 関数を使用しようとする別のクラスを派生させます。
新しいクラスのヘッダー ファイル:
この行は私にエラーを与えません。
しかし、ファイル game.cpp では:
「printedGame」という単語は、「エラー: オブジェクトには、メンバー関数と互換性のない型修飾子があります」というメッセージが返されます。
私が直接行ってみたとき(私は以前に試しました:)
そのエラーと、getPrice() 関数にアクセスできないことを知らせる追加のエラーが表示されます。
ここで何か助けはありますか?ありがとう!!
c++ - テンプレートから派生
私は次のことで立ち往生しており、いくつかの助けを借りることができます:
派生クラスがオーバーロードされた演算子を取得していないようです
c - Cおよび派生データ型?
Cの基本的なデータ型( char、int、floatなど)を知っています。しかし、 C言語の派生データ型とは正確には何ですか?
c++ - 派生クラスのテンプレート関数を呼び出す
C++ で、基本クラスへのポインターを持っているときに派生クラスの関数を呼び出すときに問題が発生しています。
編集:いくつかの回答はCRTPに私を紹介しました
しかし、私のポイントは、現在処理されているタイプを認識していないため、「Base *」ではなく「Base *」クラスへのポインターが必要であるということです (現在のインスタンスは、ある種のファクトリから作成されます)。
クラス:
使用法:
言語が仮想テンプレート機能をサポートしていないため、func を仮想化できません。
クラスのみがテンプレート引数を持つ場合にのみ許可され、その中の関数にテンプレート引数がある場合は許可されません。
Boost.Serialization 内で解決された同様の問題を見たことがありますが、解決策を理解できませんでした。
ありがとう、
コビー・メイア