Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.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+;中从类模板中的函数调用另一个成员函数+;_C++_Class Template - Fatal编程技术网

C++ 在C+;中从类模板中的函数调用另一个成员函数+;

C++ 在C+;中从类模板中的函数调用另一个成员函数+;,c++,class-template,C++,Class Template,假设我有一个名为myTemplate的类模板,其中包含一些成员变量和两个成员函数,funcTempA和funcTempB template <class T> class myTemplate { private: //member variables public: T* funcTempA(T *arg1, T *arg2); T* funcTempB(T *arg1, T *arg2); } 要调用成员变量或成员

假设我有一个名为
myTemplate
的类模板,其中包含一些成员变量和两个成员函数,
funcTempA
funcTempB

template <class T>
class myTemplate
{
    private:
        //member variables
    public:
        T* funcTempA(T *arg1, T *arg2);
        T* funcTempB(T *arg1, T *arg2);
}

要调用成员变量或成员函数,可以使用
this
关键字

template <class T>
T* myTemplate<T>::funcTempB(T *arg1, T *arg2)
{
    this->funcTempA(arg1, arg2);
    return ...;
}
模板
T*myTemplate::FunctTempb(T*arg1,T*arg2)
{
此->funcTempA(arg1,arg2);
返回。。。;
}

您可以阅读了解或了解
this
要调用成员变量或成员函数,可以使用
this
关键字

template <class T>
T* myTemplate<T>::funcTempB(T *arg1, T *arg2)
{
    this->funcTempA(arg1, arg2);
    return ...;
}
模板
T*myTemplate::FunctTempb(T*arg1,T*arg2)
{
此->funcTempA(arg1,arg2);
返回。。。;
}

你可以通过阅读来了解或了解这个

直接调用它,例如:

return funcTempA(arg1, arg2);

顺便说一句:成员函数
funcTempB
的定义似乎错误,可能会导致一些意外错误

template <class T>
T* myTemplate<T>::funcTempB(T *arg1, T *arg2)
// ~~~~~~~~~~~~~~~
{
    return funcTempA(arg1, arg2);
}
模板
T*myTemplate::FunctTempb(T*arg1,T*arg2)
// ~~~~~~~~~~~~~~~
{
返回funcTempA(arg1、arg2);
}

直接呼叫即可,例如:

return funcTempA(arg1, arg2);

顺便说一句:成员函数
funcTempB
的定义似乎错误,可能会导致一些意外错误

template <class T>
T* myTemplate<T>::funcTempB(T *arg1, T *arg2)
// ~~~~~~~~~~~~~~~
{
    return funcTempA(arg1, arg2);
}
模板
T*myTemplate::FunctTempb(T*arg1,T*arg2)
// ~~~~~~~~~~~~~~~
{
返回funcTempA(arg1、arg2);
}

如果函数直接在头文件中实现,则成员函数的定义可能是正确的。@ValentinTrinqué否。它将是一个普通(非成员)函数。嗯,我的意思是这样的:考虑到您实现
funcTempA
的方式,我们处于相同的阶段。@ValentinTrinqué您的意思是在类定义中实现?然后不能像OP那样在函数定义前面写
模板
,所以我想OP不是这个意思。如果函数直接在头文件中实现,则成员函数
funcTempB
的定义可能是正确的。@ValentinTrinqué否。它将是一个正常(非成员)函数。嗯,我的意思是这样的:考虑到您实现
funcTempA
的方式,我们处于相同的阶段。@ValentinTrinqué您的意思是在类定义中实现?然后不能像OP那样在函数定义前面写
模板
,所以我猜OP不是这个意思。这个双关语是故意的吗?你打了这个双关语:)这个双关语是故意的吗?你打了这个双关语:)