How to overload the conditional operator?
Possible Duplicate:
Operator overloading
I was wonder how can I over load the Conditional operator in cpp?
int a,b,c;
a=10;
b=11;
c = (a>b) ? a : b;
Is it possible?
Several operators cannot be overloaded. These operators take a name, rather than an object, as their right operand:
Direct member access (.)
Deference pointer to class member (.*)
Scope resolution (::)
Size of (sizeof)
The conditional operator (?:) also cannot be overloaded.
Additionally, the new typecast operators: static_cast<>, dynamic_cast<>, reinterpret_cast<>, and const_cast<>, and the # and ## preprocessor tokens cannot be overloaded.
http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=23
您不能重载条件运算符。
No, you can't overload the conditional operator, since it's simply shorthand for a simple if..else
block.
You can however overload the operators used in the condition, but not for primitive types such as int
, like you have in your example above.
上一篇: 运算符<<重载
下一篇: 如何重载条件运算符?