关于c ++:如何重载条件运算符?

How to overload the conditional operator?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Operator overloading

我想知道如何在cpp中重载条件运算符?

1
2
3
4
5
int a,b,c;

  a=10;
  b=11;
  c = (a>b) ? a : b;

有可能吗?


不能重载多个运算符。这些运算符的右操作数是名称而不是对象:

  • 直接成员访问(.)

  • 类成员(.*的尊重指针

  • 范围分辨率(::)

  • 大小(size of)

条件运算符(?:)也不能超载。

此外,新的类型转换运算符:static cast<>、dynamic cast<>、reinterpret cast<>、const cast<>,以及和预处理器标记不能超载。

http://www.informit.com/guides/content.aspx?G=cplusplus&seqnum=23


不能重载条件运算符。


不,不能重载条件运算符,因为它只是简单的if..else块的简写。

但是,您可以重载条件中使用的运算符,但不能像上面的示例中那样为原始类型(如int)重载。