gpt4 book ai didi

c++ - C++中const变量成员有什么用?

转载 作者:搜寻专家 更新时间:2023-10-31 02:22:05 25 4
gpt4 key购买 nike

在 C++ 中是否存在 const 变量成员有用的场景?

如果你想创建一个不可变的类,通常的做法是声明私有(private)成员,使用只获取常量函数来访问它们的值。这样做的好处是类可以被复制分配等等。所以在这种情况下,您不需要 const 变量成员。

另一方面,如果类有一个 const 成员变量,它就不会获得自动复制赋值运算符。我看不到这会有用的场景。

最佳答案

const 数据成员的一个主要优点与引用成员相同(实际上,可以将引用有效地视为 const 指针),即它强制初始化,除非该成员属于具有用户定义的默认构造函数的类型。编译器会坚持初始化。不过,我从来没有发现它如此有用以至于我已经开始这样做了。

如果需要保证初始化,另一种方法是将数据成员包装在不提供默认构造的类中。使用这种方法,如果数据成员支持赋值,则可以将其赋值给它。

(const 数据成员的)另一个优点是它表达了一个预期的约束,带有编译器检查,这几乎总是好的。对值如何更改的限制越多,理解或调试代码所需考虑的因素就越少。

关于c++ - C++中const变量成员有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30697168/

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