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

const keyword in return type of function declaration

本文关键字:Const 关键字 声明 返回类型 函数      更新时间:2023-10-16

我用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的评论总结了这一切。

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