【发布时间】:2015-06-05 14:18:49
【问题描述】:
我想知道是否有一种方法可以执行以下操作,全部使用一个功能:
template <typename T>
void _class_<T>::func (T chgx = x, T chg y = y, T chgz = z)
{
x = chgx;
y = chgy;
z = chgz;
}
我想要做的是将默认值设置为我想要更改的值,这样如果我放弃一些参数,这些值不会改变。上面的代码不起作用,我想我明白为什么(该函数实际上无法访问这些值,因此会引发错误)。
我想知道是否有办法像我上面描述的那样,只用一个功能。我唯一的选择是用多个定义重载函数来处理不同数量的参数吗?
【问题讨论】:
-
您希望能够省略值吗?或者你可以为 null 传递一个占位符吗?
-
请发布示例代码,展示您如何考虑使用该函数。
-
@Pradhan 那很好,如果这是唯一可行的方法。我只是想知道这样的事情是否可行。
-
当你说“那些值没有改变”时,没有从什么改变?如果你不提供参数,那么除非你给它一个默认值,否则没有什么可以告诉它有什么值。
-
@R Sahu 这只是一个简单的模板类,包含三个值(一个向量)。这只是为了教育目的。
标签: c++ default-value optional-parameters