operators
提供: cppreference.com
![]() | このページは、Google 翻訳を使って英語版から機械翻訳されました。 翻訳には誤りや奇妙な言い回しがあるかもしれません。文章の上にポインタをおくと、元の文章が見れます。誤りを修正して翻訳を改善する手助けをしてください。翻訳についての説明は、ここをクリックしてください。 |
目次 |
[編集]演算子のオーバーロード
[編集]構文
typeoperator op( params) ; | |||||||||
[編集]説明
- <type>は/変数のタイプ(複数可)ですさ.Original:<type> is/are the type(s) of the variables.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - <op>には、特定の演算子(例えば
+
、+=
、<<
、>>
、&&
、||
、%
など)です.Original:<op> is the particular operator (e.g.+
,+=
,<<
,>>
,&&
,||
,%
, etc.).The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - は、<params>は/必要なパラメータ(オペレータに依存します)の名前(s)です.Original:<params> is/are the name(s) of the required parameters (depends on the operator).The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
[編集]制限
- あなたは
**
または&|
などの新しい演算子を作成することはできません.Original:You cannot create new operators such as**
or&|
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - すべての演算子はオーバーロードできませんOriginal:Not all operators can be overloadedThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - いくつかの演算子は、非静的クラスのメンバとしてオーバーロードすることができますOriginal:Some operators can only be overloaded as non-static class membersThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - 短絡評価はオーバーロードされた演算子では動作しませんOriginal:Short-circuit evaluation doesn't work with overloaded operatorsThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
[編集]オペレータコール
オーバーロードされた演算子は通常の中置記法を使って呼び出すことができます
Original:
Overloaded operators can be called using the usual infix notation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
a+b
や関数のような表記
Original:
or a function-like notation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
operator+(a,b)
[編集]例
#include <iostream>usingnamespace std; class Fraction{private:int numerator, denominator; public: Fraction(int n, int d): numerator(n), denominator(d){}// Note that the keyword operator combined with an actual// operator is used as the function namefriend ostream& operator<<(ostream&, Fraction&);}; ostream& operator<<(ostream& out, Fraction& f){ out << f.numerator<<'/'<< f.denominator;return out;} int main(){ Fraction f1(3, 8); Fraction f2(1, 2); cout << f1 << endl; cout <<3<<' '<< f2 << endl; return0;}
出力:
3/8 3 1/2
[編集]参照
Common operators | ||||||
---|---|---|---|---|---|---|
代入 | incrementNJdecrement | 算術 | 論理 | 比較 | memberNJaccess | 他の |
a = b | ++a | +a | !a | a == b | a[b] | a(...) |
Special operators | ||||||
static_cast別の互換性のあるタイプ に1型に変換します Original: static_cast converts one type to another compatible type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. dynamic_cast派生class に仮想基底クラスに変換します Original: dynamic_cast converts virtual base class to derived class The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. const_cast異なるcvqualifiers と互換性のある型に型変換されます Original: The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. reinterpret_cast互換性type に型を変換します Original: reinterpret_cast converts type to incompatible type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. new割り当てmemory Original: new allocates memory The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. delete割り当て解除memory Original: delete deallocates memory The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. sizeoftype のサイズを照会します Original: sizeof queries the size of a type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. sizeof...パラメーターパック(C++11およびそれ以降) のサイズを照会します Original: The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. typeidtype の型情報を照会します Original: typeid queries the type information of a type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. noexcept式が例外(C++11およびそれ以降) を投げることができるかどうかをチェックします Original: The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. alignofタイプ(C++11およびそれ以降)のクエリアラインメント要件を Original: alignof queries alignment requirements of a type (C++11およびそれ以降) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |