gpt4 book ai didi

c++ - 为什么静态成员函数不能是常量?

转载 作者:太空宇宙 更新时间:2023-11-04 16:10:41 25 4
gpt4 key购买 nike

我浏览了关于该主题的现有线程,但对解释不满意。

我可以从那里学到的是:

当一个非静态成员函数被声明为const时,这个this指针就会受到限制。由于静态成员函数不涉及 this 指针,因此不能将它们声明为 const

是吗?对我来说听起来不太有说服力。我的意思是,我不是在质疑为什么会这样。我只想知道原因。

最佳答案

const 非静态成员函数允许修改局部、静态和全局变量;它只是不允许通过 this 指针(隐式或显式)修改其类的成员。因此,const 静态成员函数将被允许修改局部、静态和全局变量,就像非成员函数一样。这将使 const 变得毫无意义。

如果您想编写一个根本不允许修改任何非局部变量的函数,您可以将其声明为 constexpr,尽管这也会施加额外的限制。

关于c++ - 为什么静态成员函数不能是常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29055864/

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