为什么cv资格参考是不正确的?

时间:2018-05-14 03:23:00

标签: c++

根据dcl.ref/1

  除了cv限定符之外,

Cv限定的引用是不正确的   是通过使用typedef-name

引入的

所以我试过了:

int a = 1;
int& const r1 = a;

得到了错误:

error: 'const' qualifiers cannot be applied to 'int&'

预计会提示诊断消息。

但是,我想知道为什么被禁止。

只是为了防止程序员实际意味着写上面代码的意外:

const int& r1 = a; // const reference to int

主要问题

2)还是有一些更深层次的理由/实际例子,为什么不允许它确实有益?

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

CV-qualifiers对指针有效:

int a;
int * const p = &a;

这适用于指针本身,而不是它指向的内容。

但由于您无法在定义后更改引用,因此将CV-Q添加到引用中是没有意义的。