問題タブ [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 投票する
8 に答える
2885 参照

c# - C#でデフォルトの関数引数を持つ唯一の方法はオーバーロードですか?

デフォルトの関数引数を処理する唯一の方法は、関数のオーバーロードによるものであるというのは本当ですか?

たとえば、PHP では次のようにできます。

C#でそれを処理する最良の方法はこれでしょうか?

ここから持ち上げた例

編集

C# の例を実際の C# にしました (Thanks Blair Conrad)

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

c++ - C++ オーバーロードの解決

b->A::DoSomething()次の例を考えると、ステートメントだけでなく明示的に使用する必要があるのはなぜb->DoSomething()ですか?

コンパイラのオーバーロード解決は、私が話しているメソッドを理解するべきではありませんか?

Microsoft VS 2005 を使用しています (注: この場合、仮想の使用は役に立ちません)。

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

c++ - (関数) テンプレートへの C++ の非型パラメーターは順序付けられていますか?

私は現在のプロジェクトでSpiderMonkeyをホストしており、テンプレート関数でいくつかの単純なプロパティの get/set メソッドを生成したいと考えています。

使用済み:

これは問題なく動作しますが、別のメンバー タイプを追加すると、次のようになります。

次に、Visual C++ 9 は、int32 メンバーに対して JSObject* ラッパーを使用しようとします。

驚くべきことに、JSObject* をペアリングすると解析エラーが発生します! (予期しない '(')。これはおそらく VC++ エラーです ("template void foo() {}" が GCC でコンパイルされることをテストできる人はいますか?) "typedef JSObject* PObject; ..., PObject TClassImpl:: mem>"、void、struct Undefined*、および double。関数の使用法は完全にインスタンス化されているため ("&ReadProp")、通常の関数のオーバーロード セマンティクスが発生することはありません。その時点で定義済みの関数であり、テンプレートよりも優先されます。ここでテンプレートの順序付けが失敗しているようです。

Vec2 は次のとおりです。

JSPropertySpec は、ヘッダーから取得した OP の JSAPI リンクで説明されています。

0 投票する
21 に答える
291699 参照

java - ポリモーフィズム vs オーバーライド vs オーバーロード

Javaに関して、誰かが尋ねると:

ポリモーフィズムとは何ですか?

オーバーロードまたはオーバーライドは受け入れられる答えでしょうか?

それ以上のことが少しあると思います。

実装のないメソッドを定義した抽象基本クラスがあり、そのメソッドをサブクラスで定義した場合、それはまだオーバーライドされていますか?

過負荷は確かに正しい答えではないと思います。

0 投票する
4 に答える
1371 参照

.net - Same property, different types

Let's say you have a class with a Uri property. Is there any way to get that property to accept both a string value and a Uri? How would you build it?

I'd like to be able to do something like one of the following, but neither are supported (using VB, since it lets you specify type in the Set declaration for the 2nd one):

Given that those probably won't be supported any time soon, how else would you handle this? I'm looking for something a little nicer than just providing an additional .SetLink(string value) method, and I'm still on .Net2.0 (though if later versions have a nice feature for this, I'd like to hear about it).

I can think of other scenarios where you might want to provide this kind of overload: a class with an SqlConnection member that lets you set either a new connection or a new connection string, for example.

0 投票する
12 に答える
270465 参照

c++ - C++ コンストラクターのデフォルト パラメーター

既定のパラメーターを使用するクラス コンストラクターを使用することは良い習慣ですか、それとも別のオーバーロードされたコンストラクターを使用する必要がありますか? 例えば:

どちらのバージョンでも動作するようです。例:

どのスタイルが好みまたは推奨されますか?その理由は?

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

c++ - 関数のオーバーロードが失敗しました: これらの演算子が衝突したのはなぜですか?

エンジンとアプリケーションという 2 つの主要な名前空間を含む大きなコード ベースがあります。

エンジンは、vector3 クラスを別の vector3 クラスの typedef として定義します。等値演算子は、vector3 クラスではなく、エンジンの名前空間にあります。アプリケーションの名前空間にも等値演算子を持つクラスをアプリケーションに追加しました。

コンパイルしようとすると、適切な等値演算子が見つからなかったため、関連していないが近くにある vector3 の比較が失敗しました。競合を引き起こしているのではないかと疑ったので、等値演算子を追加したクラスに移動し、コンパイルは成功しました。

しかし、考えてみると、コンパイルが失敗した理由がわかりません。vector3s から自分のクラスへ、またはその逆への暗黙的な変換はなく、引数依存のルックアップは、エンジンの名前空間から等値演算子を取得して一致させる必要があります。

サンプル C++ プロジェクトでこのバグを再現しようとしましたが、壊れません。この問題を引き起こしている大きな大きなコード ベースに何かがあるに違いありませんが、どこから調べればよいかわかりません。ローグの「エンジンを使う」の逆みたいなもの?誰でもアイデアはありますか?

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

.net - リフレクションを使用して .NET でオーバーロードされたメソッドを呼び出す方法

.NET (2.0) でリフレクションを使用してオーバーロードされたメソッドを呼び出す方法はありますか。共通の基本クラスから派生したクラスを動的にインスタンス化するアプリケーションがあります。互換性のために、この基本クラスには同じ名前の 2 つのメソッドが含まれています。1 つはパラメーター付きで、もう 1 つはパラメーターなしです。Invoke メソッドを介してパラメーターなしのメソッドを呼び出す必要があります。現在、あいまいなメソッドを呼び出そうとしていることを知らせるエラーだけが表示されます。

はい、オブジェクトを基本クラスのインスタンスとしてキャストし、必要なメソッドを呼び出すことができます。最終的にはそうなるでしょうが、今は内部の複雑さがそれを許しません。

どんな助けでも素晴らしいでしょう!ありがとう。

0 投票する
16 に答える
25381 参照

c++ - 戻り値に従って C++ 関数をオーバーロードする

パラメータに従って関数をオーバーロードできることは誰もが知っています。

戻り値に応じて関数をオーバーロードできますか? 戻り値の使用方法に応じて異なるものを返す関数を定義します。

最初のパラメーターは 0 から 9 の間であると想定できます。入力を検証したり、エラー処理を行ったりする必要はありません。

0 投票する
16 に答える
5089 参照

c# - メソッドのオーバーロード。使いすぎてもらえますか?

異なるフィルターを使用して同じ形状のデータを返す複数のメソッドを定義する場合のより良い方法は何ですか?明示的なメソッド名またはオーバーロードされたメソッド?

例えば。いくつかの製品があり、データベースからプルしている場合

明示的な方法:

過負荷の方法:

同様の署名で問題が発生する可能性があることは承知していますが、基本型(string、int、char、DateTimeなど)の代わりにオブジェクトを渡す場合、これはそれほど問題にはなりません。だから...あなたが持っているメソッドの数を減らして明確にするためにメソッドをオーバーロードするのは良い考えですか、それともデータを異なる方法でフィルタリングする各メソッドは異なるメソッド名を持つべきですか?