gpt4 book ai didi

c++ - 我可以从现在开始创建一个变量 _const 吗?

转载 作者:IT老高 更新时间:2023-10-28 21:51:04 24 4
gpt4 key购买 nike

我正在使用一个库,该库的类具有一个不同于其构造函数的 init 函数。每次我创建一个新实例时,我都需要调用,例如:

MyClass a;
a.init();

由于 init 不是 const,这会阻止我创建 const 实例(我无法编写 const MyClass a)。有什么方法可以调用 init 然后从“here on out”声明(我猜对于范围的其余部分)我的变量是 const

这可行,但依赖于不触及原始变量:

MyClass dont_touch;
dont_touch.init();
const MyClass & a = dont_touch;

最佳答案

如果你使用 C++11,你可以使用 lambda 函数

const MyClass ConstantVal = []{ 
MyClass a;
a.init();
return a;
}();

这允许您保持初始化,同时永远不会让外部访问可变对象。也可以看看: http://herbsutter.com/2013/04/05/complex-initialization-for-a-const-variable/

关于c++ - 我可以从现在开始创建一个变量 _const 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23399868/

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