問題タブ [operator-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++ - 正規演算子のオーバーロード?
C++ の数値に似たクラスで算術演算子のオーバーロードを実装するための標準的または推奨されるパターンはありますか?
C++ FAQ から、ほとんどの問題を回避する例外セーフな代入演算子があります。
しかし、他の演算子 (+、+= など) については、組み込み型の演算子のように振る舞うようにする以外に、ほとんどアドバイスはありません。
これらを定義する標準的な方法はありますか? これは私が思いついたものです - 私が見ていない落とし穴はありますか?
c# - C# で [] 演算子をオーバーロードするにはどうすればよいですか
クラスに演算子を追加したいと思います。現在GetValue()
、演算子に置き換えたいメソッドがあり[]
ます。
c++ - クイック アンド ダーティー オペレーター!=
私のクラスでは、operator!=
を返すことで簡単に書くことがよくあります!(*this == rhs)
。
これを行うことで明らかな問題は見られませんが、誰かが知っているかどうか尋ねたいと思いました。
operator-overloading - 削除オーバーロード、再帰オーバーフロー
やあみんな私は簡単なテストを書きました。delete を呼び出して deleteMe を呼び出してから、それ自体を削除します。これの目的は、lib によって割り当てられた obj を正常に削除できるようにすることです。(crtまたはw / eによるクラッシュは望んでいません)。
これを削除すると、スタックオーバーフローが発生します。それがなければ、msvc は 4 バイトがリークしたと言います。test を呼び出さないと 0 がリークします。再帰の問題がある場合はどうすれば削除できますか? -編集-これをより明確にするために。crtが原因で、LIBがプログラムの代わりにdelete(したがってdeleteMe)を呼び出すようにしたい
c++ - 削除、純粋な仮想関数呼び出しのオーバーロード
したがって、抽象仮想クラスの削除をオーバーロードしたいと思います。これにより、別のライブラリにある派生クラスで deleteMe() が呼び出されます。これはエラー/クラッシュを防ぐためです。C++ mix new/delete between libs?
基本クラスで delete から delete me を呼び出すと、「pure virtual func call」というエラーが表示されます。次に、それがすでに私の dtor を呼び出していることがわかりました。delete obj; を記述できるように、dtor を呼び出さないようにこのコードをオーバーロードするか、このコードを記述するにはどうすればよいですか。obj->deleteMe() を呼び出してから、独自の削除関数と dtor を呼び出しますか?
actionscript-3 - AS3 で [] 演算子をオーバーロードする
独自のコレクション クラスの作成を終えたばかりで、for each または単純な for 構成で反復可能にしたい、または collection[key] 表記を使用して要素にアクセスしたいだけです。
私はgetElementAt(index):MyOwnElement
関数を書きましたが、それを使用することは、角括弧を使用するほど魅力的ではありません.反復を開始することさえできません..
何か方法はありますか?
c++ - オーバーロードされた * 演算子で cout << が機能しないのはなぜですか?
私は、主に Overland の C++ Without Fear に基づいて、最初のクラスを作成しています。オーバーロードされた友人の ostream operator<< を作成しました。これは正常に動作します。* 演算子もオーバーロードしましたが、うまくいきました。うまくいかないのは、 * 演算子の結果を直接出力しようとしたときです。
情報については、ここに私のプロトタイプがあります:
私が知る限り、operator* は BCD を返すので、operator<< はそれを出力できるはずです。助けてください!
c++ - オーバーロードされたインクリメントの戻り値
The C++ Programming Language Stroustrup では、inc/dec オーバーロードの次の例を示しています。
前置演算子は参照によって返されるのに、後置演算子は値によって返されるのはなぜですか?
ありがとう。
c++ - ostream の << 演算子を適切にオーバーロードする方法は?
行列演算用に C++ で小さな行列ライブラリを作成しています。ただし、以前はそうではなかったのに、私のコンパイラは文句を言います。このコードは 6 か月間棚に置かれ、その間にコンピューターを debian etch から lenny (g++ (Debian 4.3.2-1.1) 4.3.2) にアップグレードしましたが、同じ g++ を使用する Ubuntu システムでも同じ問題が発生します。 .
私のマトリックスクラスの関連部分は次のとおりです。
そして「実装」:
これは、コンパイラによって表示されるエラーです。
matrix.cpp:459: エラー: 'std::ostream& Math::Matrix::operator<<(std::ostream&, const Math::Matrix&)' は 1 つの引数を取る必要があります
私はこのエラーに少し混乱していますが、6 か月間多くの Java を実行した後、私の C++ は少し錆びてきました。:-)
vb.net - VB.NET (Of T) 比較演算子
サンプル コードでは、「エラー コメント」のある行で次のエラーが発生します。
- 演算子 '<' は、タイプ 'T' および 'T' に対して定義されていません。
VB が適切な T 演算子を自動的に呼び出さないのはなぜですか? (つまり、T が整数の場合、整数比較関数を呼び出します。)
これをエレガントな方法で機能させることは可能ですか?
これは .NET 2.0 用です。
編集- 興味のある人のためにコードを更新しました。