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