問題タブ [constructor-overloading]
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++ - オーバーロード コンストラクターが実行される理由とタイミング
A::A(a)
呼び出し時にこのステートメントが実行される理由がわかりませc->g()
んprint(*c);
そして、メソッドの出力がプログラムのどの部分に属しているのかよくわかりませんか?
java - あるクラス コンストラクターで、別のクラス コンストラクターのパラメーターの一部を使用しようとしています
申し訳ありませんが、これは簡単な解決策かもしれませんが、Java で別のクラス コンストラクターの引数からパラメーターを使用する 1 つのオブジェクトを作成するためのコードを書くのに問題があります。基本的に、特定のパラメーターを持つこの Inv オブジェクトがあり、Inv オブジェクトの特定のパラメーターのみを使用して Warehouse オブジェクトを作成しようとしています。これは Warehouse Transaction クラスで使用されます。Inv オブジェクト コンストラクター内で if ステートメントを実行できますか? とにかく、後でこのオブジェクトをスタックにプッシュしますが、その 2 番目のオブジェクトを作成するためのロジックを開発できませんでした。助けてください、私はこれに非常に慣れていません。
{
c++ - C++ クラス テンプレート コンストラクター -- 配列 (U*) を使用したオーバーロード参照 (U&) が失敗しました
代わりにスカラーを取る別のものをオーバーロードする引数として配列を取るコンストラクタを構築しようとしています。コードは以下です。
コンパイラは不平を言う
明らかに、vec2(arr)
まだ最初のコンストラクターを呼び出します。ただし、削除template <typename U>
してに置き換えるU
とT
. プログラムは正常に動作します。これを修正するにはどうすればよいですか?
どんな提案でも大歓迎です!
javascript - JavaScript ECMA6でコンストラクターをオーバーロードする方法は?
目的
JavaScript ECMA6 でコンストラクターのオーバーロードを許可するメカニズムを実装する
これが重複していない理由
トピックJavaScript ES6 がマルチコンストラクター クラスをサポートしないのはなぜですか? 、類似はこれと同じではありませんが。もう 1 つのトピックは、古いECMAScript バージョンを使用したコンストラクターのオーバーロードにのみ焦点を当てていますが、このトピックは ECMA6 に焦点を当てています。最新の回答をお探しの場合は、ここが最適です。
バックグラウンド
特定のコンストラクターを持つ JavaScript クラスがあり、ユーザーがオブジェクトをインスタンス化するときにさまざまなコンストラクターを使用できるようにしたいと考えています。私がふりをするものの例は次のとおりです。
このコードでは、ユーザーが使用できる 3 つのコンストラクターがあり、それぞれが異なる量のパラメーターを受け取ります。使用例は次のとおりです。
問題
Java または C# を使用している場合、これらの言語にはコンストラクターのオーバーロードがあるため、これは簡単な例です。
ただし、MDNのクラスに関するドキュメントから、JavaScript はそうではないと結論付けることができます。
質問
- ECMA6 を使用して JavaScript クラスに同様のメカニズムを実装する方法はありますか? そうでない場合、最良/最も近い代替手段は何ですか?
class - Typescript クラス: "オーバーロード シグネチャは関数の実装と互換性がありません"
次のクラスを作成しました。
次のエラーが表示されます。
オーバーロード シグネチャは関数の実装と互換性がありません
コンストラクターをオーバーロードする方法をいくつか試しましたが、最後に試したのは、上に投稿したものです (ここから取得します)。
しかし、私はまだ同じエラーが発生します。コードの何が問題になっていますか?