問題タブ [non-member-functions]
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++ フリー関数
次のコードがあります
cout << endl. 私が与えていた例に従いましたが、それを機能させることができません。
以下のコードは、自由関数がどのように見えるかについて私が与えられた例です。
Updatea: うまくいきました。皆さんの助けに感謝します。フリー関数を書き直し、メインの上にアスタリスク() を再度追加したところ、機能しました。それが機能しない原因となったのは、無料の機能の何かだったに違いありません。
c++ - ドワーフを使用して非メンバー関数のローカル静的変数を決定する方法
dwarf を使用して 2 つの C++ ファイルを比較しようとしていますが、非メンバー関数のローカル変数に到達すると問題が発生します。次のコードを検討してください -
修飾子なしでコンパイルするとstatic
、次のドワーフ情報が得られます-
しかし、修飾子を付けてコンパイルすると、次のようになります-static
現在、私が知る限り、これらのファイルには 1 つの違いしかありませんDW_AT_location
。変数 j の属性のバイト ブロック サイズが異なります (DW_AT_sibling
関数 f のタグの属性が異なるのはこのためです。 )。これはどういうわけか静的を意味すると思いますが、その方法はわかりません。
c++ - 演算子のオーバーロードと非メンバー関数 c++
演算子 + をオーバーロードした複素数のクラスを作成しましたが、すべて正常に動作しますが、これを非メンバー関数として実装する必要があり、その方法や利点がある理由がわかりません。
これが私のコードです.h:
.cpp:
これらを非メンバー関数として作成する方法についてのヘルプは大歓迎です!
c++ - C++ 演算子のオーバーロード - ユニークなクイズの答えが間違っているように見えますか?
こんにちは、みんな
今年のユニコースノートにはいくつかの間違いがあり、試験前に修正するためのクイズを行っているところです。添付の写真は、「メンバー以外のオペレーターの過負荷として実装できない」の正解を示しています。
ユニフォーラムからの回答が間に合わない可能性があるため、ここに投稿します。私は何か誤解していますか、それとも以下の答えは間違っていますか?
ありがとう :)
c++ - 演算子のオーバーロード - インラインの非メンバー関数
OK、コードを動作させることができましたが、何か問題があります。これは、演算子のオーバーロードと非メンバー関数のインライン化に関係しています。以下は、複素数オブジェクトを実装する非常に単純なプログラムです。
Complex.h に含まれる
...そしてComplex.ccで
そして最後に plus_overload_test.cc に
これをリンクするメイクファイルを使用して g++ でコンパイルすると、次のエラーが発生します。
Complex.h と Complex.cc の operator+ の前から「インライン」を削除すると、すべてがコンパイルされ、正常に動作します。インライン修飾子がこのエラーを引き起こすのはなぜですか? 全員、例えば:
と
http://en.cppreference.com/w/cpp/language/operators
二項演算子をオーバーロードするには、関数を非メンバーでインラインにすることをお勧めしているようです。では、インラインにするとエラーが発生するのはなぜですか?
そして、はい、最新のコンパイラがこれを処理する必要があるため、インライン修飾子がニシンである可能性があることを認識しています。しかし、私は好奇心のままです。
乾杯!