gpt4 book ai didi

c++ - 在 C++ 中,我希望我的接口(interface) .h 说 int GetSomeInt() const;.... 但实际上方法 *DOES* 更新 "this"。

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:26 27 4
gpt4 key购买 nike

我正在向 const 方法添加一些惰性初始化逻辑,这使得该方法实际上不是 const。有没有办法让我不必从公共(public)界面中删除“const”就可以做到这一点?

int MyClass::GetSomeInt() const
{
// lazy logic
if (m_bFirstTime)
{
m_bFirstTime = false;
Do something once
}

return some int...

}

编辑:“可变”关键字在这里起作用吗?

最佳答案

使 m_bFirstTime 可变:

class MyClass
{
: :
mutable bool m_bFirstTime;
};

...但这也常常表明存在设计缺陷。所以要小心。

关于c++ - 在 C++ 中,我希望我的接口(interface) .h 说 int GetSomeInt() const;.... 但实际上方法 *DOES* 更新 "this"。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/321377/

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