好吧,我没有意识到 const
可能和指针一样令人困惑。有人可以按步骤解释以下代码在 const
方面究竟做了什么吗?
const int*const Method3(const int*const&)const;
即使对于非新手程序员来说也是如此令人困惑。
最佳答案
这可能会造成混淆,因为它将两种风格的 const
混合在一起。
const int*const Method3(const int*const&)const;
我将对它们重新排序,因为在我看来,理解它们的最佳方式是倒着读。
让我们从返回类型开始:
const int*const -> int const* const
通过向后读取它,我们得到:const
指向 const int
的指针。
同理,对于函数参数:
const int* const& -> int const* const&
通过向后阅读,我们得到:对 const
的引用指向 const int
。
该函数也被标记为 const
,这意味着它是一个成员函数,例如,当对该类的引用为常量时可以调用它。
对于可能的 const
优化和进一步理解,请参阅以下答案:
关于c++ - "Const"在 C++ 中还做了什么,然后告诉编译器特定的东西是只读的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44247062/