方法声明之前的'&'在C ++中意味着什么

What does '&' mean in C++ when it comes before a method declaration

例如,如果一个方法定义如下:

  ILDCRTParams &GetParams() const;

这有什么不同吗:

 ILDCRTParams& GetParams() const;

我正在使用 C++ 11。

他们完全一样。 return 类型是 ILDCRTParams&

不,它们的意思完全一样。 C++ 是一种基于标记的语言,其中空格在标记之间无关紧要,只是用作分隔符。你可以写成

ILDCRTParams &GetParams() const;
ILDCRTParams& GetParams() const;
ILDCRTParams&GetParams() const;
ILDCRTParams & GetParams() const;

甚至

ILDCRTParams             &GetParams(         )const;

意思不变。

在语义上,& 有效地修饰了 ILDCRTParams,但在句法上,它修饰了 GetParams()&GetParams() 指定 GetParams() returns参考。出于这个原因,有些人更喜欢将它紧挨着 ILDCRTParams 放置,但其他人更喜欢紧挨着 GetParams().