【发布时间】:2016-08-18 10:01:08
【问题描述】:
我有一个带有默认参数的 C++ 函数。
在函数中,如果我发现此参数具有默认值,则可能有两种可能性 - (A) 调用此函数的用户没有为该参数提供值,因此分配了默认值 (B) 用户提供此参数的默认值。
我需要能够区分这两种情况。这样做的最佳方法是什么?
【问题讨论】:
-
使用两个不同的重载函数。
-
那会解决什么问题?你到底想解决什么问题?
-
默认值的正确选择取决于上下文,如果用户没有指定值,我需要根据上下文对默认值做出明智的选择。但是,如果值来自用户,我打算使用它而不用担心上下文。
-
所以,如果用户不提供值,默认值是没有用的。那为什么你首先有一个默认值?使用重载作为 n.m。和 Peter K 建议。
-
是的,使用不同的功能,因为它们做不同的事情:一个功能自己做出明智的选择,另一个使用用户提供的功能。第一个当然可以调用第二个。
标签: c++ function parameters optional-parameters default-arguments