我有一个带有默认参数的C++函数。
在函数中,如果我发现此参数具有默认值,则可能有两种可能性- (A)调用此函数的用户未提供此参数的值,因此分配了默认值(B)用户提供了此参数的默认值。
我需要能够区分这两种情况。做这件事的最好方法是什么?
发布于 2016-08-18 18:03:53
AFAIK,则编译器在调用点处替换默认参数。没有办法将这与提供完全相同的参数的用户区分开来。
您可以使用两个不同的函数来区分这两种情况:一种函数具有要指定默认值的参数,另一种则没有。
发布于 2016-08-18 18:27:18
使用重载函数。
void do_great()
{
// default operation
}
void do_great(int value)
{
// non-default operation
}发布于 2016-08-18 18:05:09
class A
{
private:
const int _defaultValue = 0;
public:
void function(int userValue = _defaultValue)
{
if (userValue != _defaultValue)
....;
else
....;
....对于函数也是如此:
namespace { const int defaultValue = 0; }
void function(int userValue = defaultValue);https://stackoverflow.com/questions/39015265
复制相似问题