How to overload the conditional operator? [duplica

2020-01-29 17:26发布

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?

3条回答
女痞
2楼-- · 2020-01-29 17:43

You cannot overload the conditional operator.

查看更多
啃猪蹄的小仙女
3楼-- · 2020-01-29 17:43

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.

查看更多
SAY GOODBYE
4楼-- · 2020-01-29 17:53

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

查看更多
登录 后发表回答