我用 C++ 编写了以下 3 个函数。请解释一下所有返回类型有何不同?以及返回值将如何存储在内存中?我知道 const 关键字适用于紧靠左侧的任何内容,但我需要更多解释。
const int* sample1();
int* const sample2();
int const* sample3();
我用 C++ 编写了以下 3 个函数。请解释一下所有返回类型有何不同?以及返回值将如何存储在内存中?我知道 const 关键字适用于紧靠左侧的任何内容,但我需要更多解释。
const int* sample1();
int* const sample2();
int const* sample3();
const int* sample1();
int const* sample3();
这些功能是相同的。它们返回指向常量内存的指针(此内存不能通过此指针更改)。但是我们可以改变指针本身。例如增加它。
int* const sample2();
此函数返回指向非常量内存的常量指针。我们不能改变指针本身,但我们可以改变它指向的内存。
const不必适用于直接右侧的任何内容。例如
class Foo
{
void Bar() const;
int var;
}
这将禁止Foo中的函数Bar更改对象中的任何成员变量。除了这个us2012的评论总结了一切。
我可能完全喜欢,但这似乎是学校作业或其他什么?