1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
/* A collection of all the different known operator prototypes in C++ */
// arithmetic operators
Type1 operator+(const Type1& a); // +a
Type1 operator+(const Type1& a, const Type2& b); // a + b
Type1& operator++(Type1& a); // ++a
Type1 operator++(Type1& a, int); // a++
Type1& operator+=(Type1& a, const Type1& b); // a += b
Type1 operator-(const Type1& a); // -a
Type1& operator--(Type1& a); // --a
Type1 operator--(Type1& a, int); // a--
Type1& operator-=(Type1& a, const Type1& b); // a -= b
Type1 operator*(const Type1& a, const Type1& b); // a * b
Type1& operator*=(Type1& a, const Type1& b); // a *= b
Type1 operator/(const Type1& a, const Type1& b); // a / b
Type1& operator/=(Type1& a, const Type1& b); // a /= b
Type1 operator%(const Type1& a, const Type1& b); // a % b
Type1& operator%=(Type1& a, const Type1& b); // a %= b
// comparison operators
bool operator<(const Type1& a, const Type1& b); // a < b
bool operator<=(const Type1& a, const Type1& b); // a <= b
bool operator>(const Type1& a, const Type1& b); // a > b
bool operator>=(const Type1& a, const Type1& b); // a >= b
bool operator!=(const Type1& a, const Type1& b); // a != b
bool operator==(const Type1& a, const Type1& b); // a == b
// logical operators
bool operator!(const Type1& a); // !a
bool operator&&(const Type1& a, const Type1& b); // a && b
bool operator||(const Type1& a, const Type1& b); // a || b
// bitwise operators
Type1 operator<<(const Type1& a, const Type1& b); // a << b
Type1& operator<<=(Type1& a, const Type1& b); // a <<= b
Type1 operator>>(const Type1& a, const Type1& b); // a >> b
Type1& operator>>=(Type1& a, const Type1& b); // a >>= b
Type1 operator~(const Type1& a); // ~a
Type1 operator&(const Type1& a, const Type1& b); // a & b
Type1& operator&=(Type1& a, const Type1& b); // a &= b
Type1 operator|(const Type1& a, const Type1& b); // a | b
Type1& operator|=(Type1& a, const Type1& b); // a |= b
Type1 operator^(const Type1& a, const Type1& b); // a ^ b
Type1& operator^=(Type1& a, const Type1& b); // a ^= b
// other operators
Type1& Type1::operator=(const Type1& b); // a = b
void operator()(Type1& a); // a()
const Type2& operator[](const Type1& a, const Type1& b); // a[b]
Type2& operator*(const Type1& a); // *a
Type2* operator&(const Type1& a); // &a
Type2* Type1::operator->(); // a->b
Type1::operator type(); // (type)a
Type2& operator,(const Type1& a, Type2& b); // a, b
void * Type1::operator new(size_t x); // new Type1
void * Type1::operator new[](size_t x); // new Type1[n]
void * Type1::operator delete(size_t x); // delete a
void * Type1::operator delete[](size_t x); // delete [] a
// Misc examples
int& operator*();
Foo::operator const char *();
Foo::operator const Bar&();
|