gpt4 book ai didi

c++ - 如果可以将其置于私有(private)状态,为什么还要使用 static const (int/string/..)?

转载 作者:太空狗 更新时间:2023-10-29 20:21:31 26 4
gpt4 key购买 nike

在 C++ 中,标记为 static 的成员由给定类的所有实例共享。是否私有(private)并不影响一个变量被多个实例共享这一事实。如果有任何代码试图修改它,在那里设置 const 会警告您。

如果它是严格的private,那么类的每个实例都会有自己的版本(尽管有优化器)。

^这就是我读到的here .我的问题是,为什么使用 static const int 而不是将所需的变量放在 private 中会更好?我知道每个对象都会有自己的对象,但为什么不好?

最佳答案

您用“尽管有优化器”暗示了自己的答案。相信编译器并以清晰为目标。

事实上你在这里是正确的,还要注意更强的条件,即尝试修改声明为 const 的变量的行为是未定义。因此,您不能使用 const_cast 和指针 &c 解决这个问题。

做任何感觉最自然的事情。是的,它是主观的,但对于它的值(value),我倾向于使用 private 自动变量而不是 private static 变量,因为 (i) 它更对称, (ii) 重构为 protectedpublic 更简单,并且 (iii) private 成员与基本成员初始化配合得更好。

关于c++ - 如果可以将其置于私有(private)状态,为什么还要使用 static const (int/string/..)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43868148/

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