将方法与模板一起使用
Using methods with a Template
我对C++很陌生,所以想知道你们是否可以帮助我。
我正在浏览一段代码,并在模板下看到一个函数,如下所示:
MyClass(xyzType param1, xyzType param2)
parameter1 (param1)
,parameter2 (param2)
{
myMethod<ExternalLogicClass>(paramter1, parameter2);
template<class TemplateClass>
void MyClass::myMethod(xyzType parameter1, xyzType parameter2)
{
xyzType var = xyzObject->createSomething(new TemplateClass(parameter1), parameter2);
}
};
我的问题是,为什么有人会这样做? myMethod
很可能在没有模板的情况下创建。将函数与模板一起使用是否有优势,如果是,那么优势是什么?还有什么时候应该使用,什么时候不应该使用?
任何帮助不胜感激。谢谢
如发布,myMethod
不使用MyClass
的任何会员数据。它可以作为非成员函数模板实现。
template<class TemplateClass>
void myMethod(xyzType parameter1, xyzType parameter2)
{
xyzType var = xyzObject->createSomething(new TemplateClass(parameter1), parameter2);
}
但是,如果myMethod
依赖于某种MyClass
状态,则将其作为模板成员函数是有意义的。
MyClass
{
int myData;
template<class TemplateClass>
void myMethod(xyzType parameter1, xyzType parameter2)
{
xyzType var = xyzObject->createSomething(new TemplateClass(parameter1),
parameter2,
myData); // Member data.
}
};
相关文章:
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 出于什么目的,非虚拟方法将与C++一起使用?
- 如何在Visual Studio 2017上将类方法设置为参数并将它们与lambda一起使用?
- 将派生类方法与基类unique_ptr一起使用
- 让类与运算符一起工作更简单的方法
- 将赋值运算符与make_pair方法一起使用会生成 CLion 警告
- 有没有一种干净(更)的方法将 CRTP 与可变参数继承混合在一起?
- 与其所有者一起分配阵列的正确方法
- 将方法与模板一起使用
- 有没有一种方法可以将QVariant与QVector一起使用
- 如何将策略模式与派生类中的其他方法一起使用
- 有什么方法可以将字符串文字u8与变量一起使用吗
- 有没有一种方法可以将升压信号和插槽与不可复制的对象一起使用
- 具有与专用列表一起使用的参数列表的超类方法<superclass>
- 为什么将我的打印方法与std::cout一起使用会导致错误
- C++ 继承函数指针,可与派生方法一起使用
- STD :: Atomic Load方法与STD :: shared_ptr一起使用时会减少参考计数
- 如何将序列化方法添加到作为Windows数据结构的类成员中,以便在C++中与boost序列化一起使用
- 为什么点运算符(.)可以与私有类成员/方法一起使用
- 与BFS一起寻找方法