对此道歉,我是一名试图学习 C++ 的学生,我只是认为如果我提出这个问题并对此有很多正确的看法会更好,所以我很抱歉提出愚蠢的问题。我只是觉得问总比不知道好。
我理解地址运算符&
和const
关键字分别是什么意思。但是当我在某处阅读我看到的示例代码时,我const&
只是想知道这意味着什么?
它被用来代替函数原型中的参数,例如:
void function (type_Name const&);
如果只使用其中一个,我会理解,但我在这里有点困惑,所以一些专业的见解会很棒。
C++ 中的类型从右到左读取。这与我们喜欢阅读单个单词的方向相反,很不方便。然而,当试图决定喜欢什么限定词const
或volatile
适用于什么限定词时,总是把限定词放在右边可以更容易地阅读类型。例如:
int* const
是const
指向 [non- const
]的指针int
int const*
是一个 [non- const
] 指向 aconst int
int const* const
是一个const
指针const int
然而,对于历史上任何不幸的事故,允许顶层const
写在左边被认为是合理的,即,const int
绝对int const
等价。当然,尽管在const
类型的右侧明显正确放置,便于阅读类型并且具有一致的位置,但许多人认为顶层const
应该写在左侧。
在这种情况下,&
不是地址运算符。
void function (type_Name const&);
相当于:
void function (const type_Name &);
这只不过是通过const
引用获取参数的函数原型。你应该自己研究这类主题,最好是从一些好书上学习。但是,如果您正在寻找一些额外的材料,这些问题也可能对您有所帮助:
C++ 中指针变量和引用变量之间的区别是什么?
指针与引用,何时使用引用与指针,在 C++ 中按引用/值传递