問題タブ [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++ - スマート ポインターは、ラップしているオブジェクトへの関数呼び出しを選択的に非表示またはリダイレクトできますか?
特定のオブジェクトが参照されるプロジェクトに取り組んでいます。これは、COM と非常によく似た設定です。とにかく、私たちのプロジェクトには、これらのオブジェクトに対して Add() と Release() を明示的に呼び出す必要性を軽減するスマート ポインターがあります。問題は、開発者がまだスマート ポインターを使用して Release() を呼び出している場合があることです。
私が探しているのは、スマート ポインターから Release() を呼び出すと、コンパイル時または実行時エラーが発生する方法です。コンパイル時間は私には不可能のようです。ランタイム ソリューション (以下のコードを参照) があると思っていましたが、コンパイルもうまくいきません。どうやら、operator->() を使用した後の暗黙的な変換は許可されていません。
とにかく、私が達成しようとしていることを達成する方法を誰かが考えられますか?
助けてくれて本当にありがとうございます!
ケビン
c# - C# ジェネリック オーバーロード - コンパイラが正しい呼び出しを判断できない
ここで使用する正しいオーバーロードをコンパイラが解決できない理由がわかりません。(以下のコード) 適切な Add() のバージョンは 1 つだけです。BigFoo は IFoo であり、T が IFoo である IEnumerable を実装していません。しかし、それはあいまいさを報告することを主張しています。何か案は?2 番目のジェネリック型パラメーターを追加してみました - Add where T : IFoo where U : IEnumerable. ただし、過負荷は、正当な使用であっても完全に無視されます。
ジェネリック型パラメーターをキャストして指定することでこれを回避できることはわかっていますが、その時点で、オーバーロードを持つ目的を無効にしました。オーバーロードに疑問を呈することもできますが、セマンティクスは私には正しいと感じています。クラスで実装している動作は、Add() の両方がオブジェクトをホールセールとしてコレクションに個別のエントリとして追加することです。(2 番目の Add() は AddRange() であってはなりません。)
c# - リフレクションを使用して、オーバーロードされたメソッドのジェネリック バージョンと非ジェネリック バージョンを区別する
リフレクションを使用してジェネリック クラスの非ジェネリック メソッドとジェネリック メソッドを区別するのに問題があります。私が取り組んでいるテストケースは次のとおりです。
c# - 動的型を使用した C# 4.0 でのオーバーロードの解決
C# 4.0 プレビューにまだアクセスできません。しかし、次のケースでオーバーロードされたメソッドを呼び出すときに、C# 4.0 ランタイムは何をするのか、興味があります。一般的なオーバーロードに解決されますか...または特殊なオーバーロードに解決されますか。
c++ - テンプレートC++で演算子()オーバーロード
以下のように演算子をオーバーロードしたい単純なクラスがあります
そして私が持っている他のどこか
誰かがこのエラーで私を助けてくれますか、大いに感謝します。ありがとうございました。
編集:
これはoperator()と関係があります。たとえば、関数を次のように置き換えた場合です。
できます。すべての回答に感謝します。
generics - C# と比較した Scala ジェネリック
Scalaジェネリックの実装の詳細について疑問に思っています。C# では、クラスを次のように宣言できます。
ただし、Scala では、同じことを次のように宣言する必要があります。
複数のジェネリック パラメーターのクラス名を強制的に変更する方法に注意してください。Scala が、私がよりエレガントだと感じる C# ではなく、このルートを選択した理由はありますか? これはおそらくかなり些細な問題であることはわかっていますが、その理由については非常に興味があります。
templates - g++ のテンプレート ファンクター エラー
マップ内のマップされた値を使用して要素のベクトルを作成したいコードがあります。以下のコードは Visual Studio で正常に動作します (そして、私が知る限り、正当に思えます) が、g++ は同意しません。
残念ながら、現時点では正確なエラー テキスト (使用するオーバーロードされた関数を特定できないことに関するもの) または g++ の特定のバージョン (最新版は Ubuntu で配布されています) を持っていませんが、それを取得したら、この投稿を更新してください。
それまでの間、提供されているファンクターの型を g++ が解決できない理由を誰か説明できますか?
python - Python 2.6 で bin() を oct() や hex() のようにオーバーロードできますか?
Python 2.6 (およびそれ以前) では、組み込み関数hex()
および組み込み関数は、および特別な関数oct()
を定義することによって、クラスでオーバーロードできます。ただし、Python 2.6 の新しい組み込み関数の動作をオーバーロードするための特別な関数はありません。__hex__
__oct__
__bin__
bin()
を柔軟にオーバーロードする方法があるかどうかを知りたいのですがbin()
、そうでない場合は、なぜ一貫性のないインターフェースなのか疑問に思っていましたか?
特殊関数を使用できることは知ってい__index__
ますが、整数しか返せないため、これは柔軟ではありません。私の特定の使用例は、先行ゼロビットが重要と見なされるbitstringモジュールからのものです。
これを達成する方法はないと思いますが、質問しても問題ないと思いました。
c++ - カスタム C++ クラスのバグ
3D 位置を管理するためにカスタム C++ クラスを使用して問題を見つける方法について、助けが必要です。クラスの関連コードは次のとおりです
ここでは次のように使用しています。
nodo[i] は Punto* で、問題なくコンパイルされますが、実行しようとすると:
コンパイラは次のように述べています。
メンバ関数
void mdTOT::pintarElementosFrontera()': error: invalid operands of types
Punto*' およびPunto*' to binary
operator+' 内
python - このプロパティが派生クラスで上書きされている場合、基本クラスのプロパティを呼び出す方法は?
私はいくつかのクラスをゲッターとセッターの広範な使用からプロパティのよりpythonicな使用に変更しています。
しかし、以前のゲッターまたはセッターの一部が基本クラスの対応するメソッドを呼び出してから、別のことを実行したため、今は行き詰まっています。しかし、これをプロパティでどのように達成できるのでしょうか? 親クラスでプロパティのゲッターまたはセッターを呼び出す方法は?
もちろん、属性自体を呼び出すだけで無限再帰が得られます。