< C++ Programming
Table of operators
Operators in the same group have the same precedence and the order of evaluation is decided by the associativity (left-to-right or right-to-left). Operators in a preceding group have higher precedence than those in a subsequent group.
| Operators | Description | Example Usage | Associativity |
|---|---|---|---|
| Scope Resolution Operator | — | ||
| :: | unary scope resolution operator for globals | ::NUM_ELEMENTS | |
| :: | binary scope resolution operator for class and namespace members | std::cout | |
| Function Call, Member Access, Post-Increment/Decrement Operators, RTTI and C++ Casts | Left to right | ||
| () | function call operator | swap (x, y) | |
| [] | array index operator | arr [i] | |
| . | member access operator for an object of class/union type or a reference to it | obj.member | |
| -> | member access operator for a pointer to an object of class/union type | ptr->member | |
| ++ -- | post-increment/decrement operators | num++ | |
| typeid() | run time type identification operator for an object or type | typeid (std::cout) typeid (std::iostream) | |
| static_cast<>() dynamic_cast<>() const_cast<>() reinterpret_cast<>() |
C++ style cast operators for compile-time type conversion See Type Casting for more info |
static_cast<float> (i) dynamic_cast<std::istream> (stream) const_cast<char*> ("Hello, World!") reinterpret_cast<const long*> ("C++") | |
| type() | functional cast operator (static_cast is preferred for conversion to a primitive type) |
float (i) | |
| also used as a constructor call for creating a temporary object, esp. of a class type | std::string ("Hello, world!", 0, 5) | ||
| Unary Operators | Right to left | ||
| !, not | logical not operator | !eof_reached | |
| ~, compl | bitwise not operator | ~mask | |
| + - | unary plus/minus operators | -num | |
| ++ -- | pre-increment/decrement operators | ++num | |
| &, bitand | address-of operator | &data | |
| * | indirection operator | *ptr | |
| new new[] new() new()[] |
new operators for single objects or arrays |
new std::string (5, '*') new int [100] new (raw_mem) int new (arg1, arg2) int [100] | |
| delete delete[] | delete operator for pointers to single objects or arrays | delete ptr delete[] arr | |
| sizeof sizeof() | sizeof operator for expressions or types | sizeof 123sizeof (int) | |
| (type) | C-style cast operator (deprecated) | (float)i | |
| Member Pointer Operators | Right to left | ||
| .* | member pointer access operator for an object of class/union type or a reference to it | obj.*memptr | |
| ->* | member pointer access operator for a pointer to an object of class/union type | ptr->*memptr | |
| Multiplicative Operators | Left to right | ||
| * / % | multiplication, division and modulus operators | celsius_diff * 9 / 5 | |
| Additive Operators | Left to right | ||
| + - | addition and subtraction operators | end - start + 1 | |
| Bitwise Shift Operators | Left to right | ||
| << >> | left and right shift operators | bits << shift_len bits >> shift_len | |
| Relational Inequality Operators | Left to right | ||
| < > <= >= | less-than, greater-than, less-than or equal-to, greater-than or equal-to | i < num_elements | |
| Relational Equality Operators | Left to right | ||
| == !=, not_eq | equal-to, not-equal-to | choice != 'n' | |
| Bitwise And Operator | Left to right | ||
| &, bitand | bits & clear_mask_complement | ||
| Bitwise Xor Operator | Left to right | ||
| ^, xor | bits ^ invert_mask | ||
| Bitwise Or Operator | Left to right | ||
| |, bitor | bits | set_mask | ||
| Logical And Operator | Left to right | ||
| &&, and | arr != 0 && arr->len != 0 | ||
| Logical Or Operator | Left to right | ||
| ||, or | arr == 0 || arr->len == 0 | ||
| Conditional Operator | Right to left | ||
| ?: | size >= 0 ? size : 0 | ||
| Assignment Operators | Right to left | ||
| = | assignment operator | i = 0 | |
| += -= *= /= %= &=, and_eq |=, or_eq ^=, xor_eq <<= >>= |
shorthand assignment operators (foo op= bar represents foo = foo op bar) | num /= 10 | |
| Exceptions | — | ||
| throw | throw "Array index out of bounds" | ||
| Comma Operator | Left to right | ||
| , | i = 0, j = i + 1, k = 0 | ||
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.