const关键字返回类型的函数声明

时间:2013-03-05 12:13:32

标签: c++ function const return-value return-type

我在C ++中编写了以下3个函数。请解释一下所有退货类型是如何不同的?以及返回值将如何存储在内存中?我知道const关键字适用于左边的任何东西,但我需要更多的解释。

const int* sample1();
int* const sample2();
int const* sample3();

2 个答案:

答案 0 :(得分:2)

const int* sample1();
int const* sample3();

这些功能完全相同。它们返回指向常量内存的指针(此内存不能通过此指针更改)。但我们可以改变指针本身。例如,增加它。

int* const sample2();

此函数返回指向非常量内存的常量指针。我们不能改变指针本身,但我们可以改变它所指向的内存。

答案 1 :(得分:0)

const 不必适用于右边的任何内容。例如

class Foo
{ 
  void Bar() const;
  int var;
}

这将禁止 Foo 中的函数 Bar 来改变对象中的任何成员变量。 除此之外 us2012 的评论总结了一切。

我可能完全相同,但这似乎是一项学校作业或什么?