問題タブ [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.

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

c# - コンストラクターをオーバーロードするときに NullReferenceException を回避するにはどうすればよいですか?

私は自分の状況をよりよく説明するために例を作りました

この場合NullReferenceException、2 番目のコンストラクターで を取得しています。同じ構造を維持しながらメソッド内から処理する方法はありますか、それともプライベート メソッドを作成し、両方のコンストラクターにこのメソッドを呼び出させる必要がありますか?

0 投票する
1 に答える
39 参照

c++ - リテラルをサポートしようとするときのあいまいさをオーバーロードするコンストラクタ

コード


説明

MyContainer<Type>(Type & a)ほとんどすべてのものを対象としています。ただし、リテラル (例: ) では機能しません1.732。そのため、 を追加しましたMyContainer<Type>(Type a)。ただし、これを追加すると、非リテラルはどちらのコンストラクターも使用できるため、あいまいになります。


質問

コンストラクターに与えられたすべてのパラメーター (リテラルと非リテラルの両方) を満たす方法はありますか?

0 投票する
1 に答える
105 参照

java - Java で存在しないデフォルト引数をバイパスする方法 / May フィールドでメソッドのオーバーロードを使用する方法は?

Javaにはメソッドのデフォルト引数がないことを知っています。これは、この質問のようにメソッドのオーバーロードを使用して修正できます。

ただし、約 20 のフィールドを持つクラスがあり、フィールドの任意の組み合わせでそのクラスを作成できるはずです。

このクラスは http リクエストの本文を作成するため、コンストラクターが取得するどのフィールドもリクエスト本文に値を持ち、他のフィールドは空の文字列である必要があります。フィールドが 1 つしかない可能性があります。たとえば、「タイトル」フィールドに指定するとします。他のすべてのフィールドは空ですが、10 以上のフィールドに値を指定する可能性があります。

私の問題は、空の文字列をデフォルトの引数として使用することで解決できますが、これは Java では機能しません。考えられるケースごとにコンストラクターを作成すると、何百ものコンストラクターを作成することになるため、これは明らかに適切な方法ではありません。

0 投票する
3 に答える
220 参照

c++ - 宣言/パラメータが同じ場合にコンストラクタ/関数をオーバーロードする方法は?

行列を管理するクラスを作成したいのですが、コンストラクターで問題が発生しました。目的は、いくつかのコンストラクターが明確なままで同じヘッダーを持っていることを知って、Matrix オブジェクトのコンストラクターを呼び出す最短の方法を見つけることです。これは私が取得しようとしていることのアイデアです:

ここでは、すべてのパラメーターがfloats であるため、コンストラクターをオーバーロードすることはできません。私が目にする唯一のことは、テンプレートを使用することですが、これらの特別な場合にのみ、何をすべきかわかりません。

解決

最後に、次のような抽象クラスを作成することにしました。

すべてが定義され_Mat、他のクラスはコンストラクターに役立つだけです

最後に、次のようにコンストラクターを呼び出すことができます。