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不是这个意思。这个双关语是故意的吗?你打了这个双关语:)这个双关语是故意的吗?你打了这个双关语:)