簡體   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