开发者社区> 问答> 正文

为什么引用数组不合法?

以下代码无法编译。

int a = 1, b = 2, c = 3; int& arr[] = {a,b,c,8}; C ++标准对此有何说法?

我知道我可以声明一个包含引用的类,然后创建该类的数组,如下所示。但是我真的很想知道为什么上面的代码无法编译。

struct cintref { cintref(const int & ref) : ref(ref) {} operator const int &() { return ref; } private: const int & ref; void operator=(const cintref &); };

int main() { int a=1,b=2,c=3; //typedef const int & cintref; cintref arr[] = {a,b,c,8}; } 可以使用struct cintref代替const int &模拟引用数组。

问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-07 00:57:42 367 0
1 条回答
写回答
取消 提交回答
  • 回答关于标准的问题时,我可以引用C ++标准§8.3.2/ 4:

    不应有对引用的引用,也不应有引用数组,也不能有指向引用的指针。

    2020-02-07 00:57:51
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载