タグ付けされた質問 「member-functions」

2
演算子のオーバーロード:メンバー関数と非メンバー関数?
メンバー関数として宣言されたオーバーロードされた演算子は非対称であると読みましたthis。これは、パラメーターを1つしか持つことができず、自動的に渡される他のパラメーターがポインターであるためです。したがって、それらを比較する基準はありません。一方、オーバーロード演算子はとして宣言されfriendている対称我々は、同じタイプの2つの引数を渡し、したがって、それらを比較することができるからです。 私の質問は、ポインターの左辺値を参照と比較できるのに、なぜ友達が好まれるのですか?(非対称バージョンを使用すると、対称バージョンと同じ結果が得られます)なぜSTLアルゴリズムは対称バージョンのみを使用するのですか?

1
エラー:パラメータ1に指定されたデフォルトの引数
以下のコードでこのエラーメッセージが表示されます。 class Money { public: Money(float amount, int moneyType); string asString(bool shortVersion=true); private: float amount; int moneyType; }; まず、C ++では最初のパラメーターとしてデフォルトのパラメーターは許可されていませんが、許可されていると思いました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.