gpt4 book ai didi

函数重载中的 C++ 默认参数评估一次还是每次?

转载 作者:可可西里 更新时间:2023-11-01 18:26:52 25 4
gpt4 key购买 nike

我对对象中重载函数的默认值有疑问。

如果我有一个如下的函数签名,默认值是只计算一次还是每次都计算?

class X
{
public:
f(const RWDate& d=RWDate::now());
}

// when calling f() do I get the current time each time?
X z;
z.f();

// is the default value of d recaculated in the function call?
z.f();

最佳答案

默认参数在调用点被替换,所以 z.f() 被转换成

z.f(RWDate::now())

因此,每次调用函数并使用默认参数时都会计算默认参数。

关于函数重载中的 C++ 默认参数评估一次还是每次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5669904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com