如何重载条件运算符?
可能重复:
运算符超载
我很想知道如何在cpp中加载条件运算符?
int a,b,c;
a=10;
b=11;
c = (a>b) ? a : b;
可能吗?
几个操作员不能超载。 这些操作员将一个名称而不是一个对象作为它们的右操作数:
直接成员访问(。)
类成员(。*)的引用指针
范围分辨率(::)
(sizeof)的大小
条件运算符(?:)也不能重载。
另外,新的类型转换运算符:static_cast <>,dynamic_cast <>,reinterpret_cast <>和const_cast <>以及#和##预处理器标记不能重载。
http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=23
您不能重载条件运算符。
不,你不能重载条件运算符,因为它只是一个简单的if..else
块的简写。
但是,您可以重载条件中使用的运算符,但不能用于像int
这样的基本类型,就像您在上面的示例中那样。