【发布时间】:2017-08-17 14:26:44
【问题描述】:
我对 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 很可能在没有模板的情况下创建。使用带有模板的函数是否有优势,如果是,那么优势是什么?还有什么时候应该用,什么时候不应该用?
任何帮助表示赞赏.. 谢谢你
【问题讨论】:
-
啊,是的..我会纠正它..谢谢
-
有时我将这个方案用于调试功能。因为模板仅在使用时才被实例化我将调试功能作为模板并使用它们临时。这样我就不会给自己的班级增加额外的负担。
-
@ShehrozAlam 我无法想象它会,
new TemplateClass(parameter1)将如何编译?TemplateClass也是类型名吗? -
@ShehrozAlam 这就是为什么minimal reproducible example 值一千字的原因。
标签: c++ c++11 templates methods