【问题标题】:Use of const and & in functions C++ [duplicate]在 C++ 函数中使用 const 和 & [重复]
【发布时间】:2022-01-13 13:03:56
【问题描述】:

我试图了解以下函数声明中“const”和“&”的用法。我知道最后一个'const'意味着函数不能改变类中的成员变量,'const std::string& message'意味着传递给函数的变量不能改变,但我不明白'const'的含义记录器&'。第一个“const”的目的是什么?为什么在“Logger”之后有一个“&”?这个函数是返回地址还是指针?

const Logger& log(const std::string& message) const;

【问题讨论】:

  • 你明白&const std::string& message中的用途吗?对于返回类型,它的工作方式相同。
  • 这个函数返回一个常量引用。编译器可以将引用实现为指针,但不一定。 stackoverflow.com/questions/57483/…
  • 该函数返回“对Logger 的常量引用”。你的问题似乎是"What is a reference?"
  • log 说“这是一个 Logger 参考。这是实际的 Logger,而不是副本。你不能更改它。”
  • 如果您了解const std::string&,那么您也了解const Logger&。一个是参数类型,另一个是返回类型

标签: c++ pointers constants memory-address


【解决方案1】:

所以const Logger&是日志的返回类型。 const 表示您根本无法编辑返回值。返回类型 Logger& 意味着您将获得对 Logger 的引用,而不是它的副本。

【讨论】:

    猜你喜欢
    • 2012-06-14
    • 2011-01-10
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    相关资源
    最近更新 更多