問題タブ [binary-operators]
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 BNF では、UnaryOperator ::= ( "&" | "*" | "+" | "-" | "~" | "!" )。UnaryOperatorで/と%が除外されるのはなぜですか?
C BNF では、MultiplicativeExpression
とUnaryOperator
は次のように定義されます。
/
および で%
定義されていMultiplicativeExpression
ますか?
c++ - Operator+ オーバーロードは復帰時にブレークします
初めて演算子のオーバーロードを使用していますが、いくつかの問題が発生しています。多項式を項の配列として格納するクラスを作成し、operator+ をオーバーロードして 2 つの多項式を一緒に追加しようとしました。operator+ 関数がオブジェクトを返そうとするたびに、プログラムが中断します。
問題:
Polynomial::someMemberFunction( Polynomial1 + Polynomial2 );
また、合計のデータメンバーにアクセスしようとすると関数が壊れptr[]
、デバッガーが返されるような関数に渡そうとすると、
次のようになります。Unhandled exception at 0x543B6D46 (msvcp110d.dll) in SchoolProject.exe: 0xC0000005: Access violation reading location 0xFEEEFEEE.
なぜこれを行っているのかわかりません。どんな提案も受け付けています。
編集:
その答えは、オブジェクトを適切にコピーして代入するために、コピー コンストラクターとオーバーロードされた代入演算子を明示的に定義する必要があったということです。オーバーロードされた operator+ は暗黙のコピー コンストラクターと operator= を呼び出していましたが、これらは *ptr データ メンバーが指す情報をコピーできませんでした。質問のテキストを編集して、無関係な情報を削除しました。
c++ - Shift 演算子 (C++) でランダムな結果が得られるのはなぜですか?
私が編集しているコードでは、以前のプログラマーがシフト演算子を使用して、適度に大きな数を size_t 整数に追加していました。デバッグ目的でこの特定の整数を試してみたところ、数値を変更しても予測可能な結果が得られないことがわかりました。
入力:
収量:
私はそれがある種のオーバーフローエラーであることを知っていますが、(私の限られた知識では) size_t はそれらを持つべきではありません。私が理解していることから、 size_t は実質的に無制限の数の整数を保持できる符号なし整数型です。
ビットシフト演算子について私が理解していることから、このコードは数値に 2^20 (1048576) を掛ける必要があります。このサイトの他のページへのリンク: ビットごとのシフト (ビットシフト) 演算子とは何ですか? また、どのように機能しますか?
注 - foo1 は 32 桁の 2 進数が切り捨てられたオーバーフロー エラーのように見えますが、他のすべては完全にランダムに見えます。
http://en.cppreference.com/w/cpp/types/size_tから: std::size_t は、任意の型 (配列を含む) の理論的に可能なオブジェクトの最大サイズを格納できます。そのことから、問題は整数の宣言方法またはビットシフトの動作方法にあるに違いないと思います。
どうしたの?
string - Go での CPU ID のビットマスキング変換
カンマ区切りの cpu_ids:0xA00000800000
に変換したいcpu_ids (3 つの CPU の場合) のバイナリ カウントを含むマスクがあります。string
"0,2,24"
私は次の Go 実装を行いました (私は Go スターターです)。それはそれを行うための最良の方法ですか?特に、バイト バッファの処理は効率が悪いようです。
戻り値:
"0,2,24"
c++ - C++ で二項関係演算子をオーバーロードする適切な方法
C++でバイナリ関係演算子をオーバーロードする適切な/標準的な方法は何ですか?
メンバー関数とfriend
フリー関数のどちらを使用するのが良いですか?
例えば:
また:
javascript - javascript/angularjsの括弧に基づいてANDおよびOR条件文を解析していますか?
基本的に、私はそのような声明を持っています。
括弧に基づいてこの文字列を区切ることは可能ですか? 私はそのようにリターンを得るように;
このようなもの。