Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 通过静态函数调用对象的函数_C++ - Fatal编程技术网

C++ 通过静态函数调用对象的函数

C++ 通过静态函数调用对象的函数,c++,C++,您什么时候可以使用这样的类: class IteratorFacadeAccess { public: template<class Ret, class T> static Ret dereference(const T& t) { return t.dereference(); } }; 我在使用的api中注意到了它,但我不理解它的用途。不能调用对象。您只能调用函数或成员函数。您需要提供更多的代码。如何使用它?以获得更

您什么时候可以使用这样的类:

class IteratorFacadeAccess 
{
public:
    template<class Ret, class T>
    static Ret dereference(const T& t) 
    {
        return t.dereference();
    }
};

我在使用的api中注意到了它,但我不理解它的用途。

不能调用对象。您只能调用函数或成员函数。您需要提供更多的代码。如何使用它?以获得更多的洞察力。首先想到的是,有人不喜欢自由函数,并决定创建一个实用程序类来包装本来是自由函数的东西。但在代码的其余部分可能有一个潜在的原因。。。类型是否从中继承?类型是如何使用的?这样做可能是为了允许为没有T::deference成员函数的类型专门化deference函数?所以我们可以专门化静态Ret-dereferenceconst T&T,当T是指针时,在主体中返回*T。因此,允许对所有撤销进行一致的签名。[注:这是一个非常猜测,没有周围的代码,它很难正确猜测)可能是谁学会了用java或C编程,不考虑自由函数或不知道C++命名空间。