为此道歉,我是一名学生,正在努力学习C ++,我只是觉得如果我问这个问题并且对此有很多正确的看法会更好,所以我很抱歉提出愚蠢的问题。我只是认为最好不要不知道。
我理解地址运算符&
和const
关键字的含义。但是,当我在某处阅读示例代码时,我看到const&
使用过,只是想要暗示这一点?
它用于代替函数原型中的参数,例如:
void function (type_Name const&);
如果只使用其中一个,我会理解,但我在这里有点困惑,所以一些专业见解会很棒。
答案 0 :(得分:20)
C ++中的类型从右到左阅读。这是不方便的,我们喜欢阅读单个单词的相反方向。但是,在尝试确定适用于const
或volatile
的限定符时,将限定符始终放在右侧会使查看类型变得更容易。例如:
int* const
是指向[非 - const
] const
int
指针
int const*
是指向const
const int
]指针
int const* const
是指向const
const int
指针
然而,对于历史上任何不幸的事故,我们认为允许将顶级const
写在左侧是合理的,即const int
和int const
绝对是当量。当然,尽管const
明显正确放置在类型的右侧,使其易于阅读类型以及具有一致的位置,但许多人认为顶级const
应该写在左边。
答案 1 :(得分:8)
在此上下文中,&
不是运营商地址。
void function (type_Name const&);
相当于:
void function (const type_Name &);
这只是const
引用参数的函数原型。你应该自己研究这类话题,最好是从一本好书中学习。但是,如果您正在寻找其他材料,这些问题也可能对您有所帮助:
What are the differences between a pointer variable and a reference variable in C++?
Pointer vs. Reference,When to use references vs. pointers,Pass by Reference / Value in C++