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

membalas semua(1)
左手右手慢动作

less是一个函数对象,所谓函数对象就是一个重载了调用运算符(就是“()”运算符)的类,它的对象可以“像函数一样使用”,所以叫做函数对象,第一个括号表示调用构造函数,后面的括号就是他的参数,你这个应该是C++ Primer上的例子吧,具体请看C++ Primer 5th第506页对函数调用运算符的介绍。

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan