常量变量成员在C++有什么用?

What's the use of const variable members in C++?

本文关键字:什么 C++ 变量 成员 常量      更新时间:2023-10-16

是否存在const变量成员在c++中有用的情况?

如果你想创建一个不可变的类,通常的方法是用get-only const函数声明私有成员来访问它们的值。这样做的好处是类可以被复制赋值等等。因此,在这种情况下,不需要const变量成员。

另一方面,如果类具有const成员变量,则不会获得自动复制赋值操作符。

const数据成员的一个主要优点与引用成员相同(实际上引用可以被看作是const指针),即它强制初始化,除非该成员的类型具有用户定义的默认构造函数。编译器将坚持初始化。然而,我从来没有发现它如此有用,所以我开始这样做。

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

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

一旦初始化了变量const,就永远不能重新初始化它。以后每次尝试重新初始化const变量都会产生编译错误。

当您希望防止意外修改某些您不想更改的变量时,它是有用的。就像在数学中我们需要PI一样,我们可以将它声明为常数-

private const double PI = 3.1416;