关于MultValue<int> ( 2 )的问题

我最近在学C++的stl,MSDN里有这样一段代码:

template <class Type>
class MultValue
{
private:
    Type Factor;   // The value to multiply by
public:
    // Constructor initializes the value to multiply by
    MultValue ( const Type& value ) : Factor ( value ) { }

    // The function call for the element to be multiplied
    Type operator( ) ( Type& elem ) const
    {
        return elem * Factor;
    }
};

transform (v1.begin( ), v1.end( ), v1.begin( ), MultValue<int> ( 2 ) );

我想问下transform中最后一个参数是函数指针,他这样写的原理是什么,是不是里面重载了()就可以这样写,还有对于模板类,MultValue,这样的初始化MultValue<int>() 不用写对象名就可以调用构造函数,这个特性是怎样的。

transform中最后一个参数是函数指针-----你怎么看出来的呢,这明明是一个类对象啊

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632