65,210
社区成员
发帖
与我相关
我的任务
分享
class testoperator
{
int value_;
public:
testoperator()
{
this->value_ = 0;
}
testoperator& operator ++(int)
{
int temp = this->value_++;
cout<<"++"<<endl;
return *this;
}
int operator *()
{
cout<<"*"<<endl;
return this->value_;//test operator priority
}
};
int main()
{
testoperator xxoo;
*xxoo++;
}
// Operator Precedence and Associativity
// The table below lists the C and C++ operators and their precedence and associativity values. The highest precedence level is at the top of the table.
// Symbol |Name or Meaning |Associativity
// |Highest Precedence |
// ++ |Post-increment |Left to right
// -- |Post-decrement |
// ( ) |Function call |
// [ ] |Array element |
// -> |Pointer to structure member |
// . |Structure or union member |
// ++ |Pre-increment |Right to left
// -- |Pre-decrement |
// ! |Logical NOT |
// ~ |Bitwise NOT |
// - |Unary minus |
// + |Unary plus |
// & |Address |
// * |Indirection |
// sizeof |Size in bytes |
// new |Allocate program memory |
// delete |Deallocate program memory |
// (type) |Type cast [for example, (float) i]|
// .* |Pointer to member (objects) |Left to right
// ->* |Pointer to member (pointers) |
// * |Multiply |Left to right
// / |Divide |
// % |Remainder |
// + |Add |Left to right
// - |Subtract |
// << |Left shift |Left to right
// >> |Right shift |
// < |Less than |Left to right
// <= |Less than or equal to |
// > |Greater than |
// >= |Greater than or equal to |
// == |Equal |Left to right
// != |Not equal |
// & |Bitwise AND |Left to right
// ^ |Bitwise exclusive OR |Left to right
// | |Bitwise OR |Left to right
// && |Logical AND |Left to right
// || |Logical OR |Left to right
// ? : |Conditional |Right to left
// = |Assignment |Right to left
// *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=|Compound assignment |
// , |Comma |Left to right
// |Lowest Precedence |