繁体   English   中英

如何在C ++中适当地将>运算符重载为模板函数? 学习模板重载

[英]How can I properly overload the > operator as a template function in C++? Learning template overloading

我想使用模板进行常规的运算符重载。 想象一下:

template <typename Type>
bool operator> (Type &tX, Type &tY)
{
     return (tX.data > tY.data) ? tX : tY;
}

但是我希望它可以与任何类或原始类型一起使用。 代码有什么问题?

如何在C ++中适当地将>运算符重载为模板函数?

  1. 您不能重载基本类型的>运算符。 该语言不允许这样做。

  2. 您也不能以任何明智的方式为用户定义的类型重载>运算符。 通用实现无法知道如何将用户定义类型的一个实例与相同类型的另一个实例进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM