c++ - 模板定义的基础问题
巴扎黑
巴扎黑 2017-04-17 13:08:27
0
1
485
template <typename T>int compare(const T &v1, const T &v2)
{
    if (less<T>()(v1, v2)) return -1;//这里的less<T>后面为什么有两对括号?第一对为何是空的?
}
巴扎黑
巴扎黑

全部回覆(1)
左手右手慢动作

less是一個函數對象,所謂函數對象就是一個重載了調用運算符(就是“()”運算符)的類,它的對象可以“像函數一樣使用”,所以叫做函數對象,第一個括號表示呼叫建構函數,後面的括號就是他的參數,你這個應該是C++ Primer上的例子吧,具體請看C++ Primer 5th第506頁對函數呼叫運算子的介紹。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板