【发布时间】:2020-03-19 20:56:54
【问题描述】:
const T a {}; // constant of type T
const T& b {}; // ???
T c {}; // variable of type T
T& d {}; // error
a 和 b 之间有什么区别?b 是一个引用,但我没有为其分配对象:在该指令中,我通过 T 构造函数对其进行了初始化。b的地址在a和c的地址之间,所以b和a似乎没有区别。
如果我可以声明和初始化b,为什么d 会出现编译错误?
我谈到了泛型类型 T。我测试了上面的代码,无论是原始类型还是类,结果都是一样的。
【问题讨论】:
-
你试过编译代码吗?你注意到了什么?
-
a和b完全相同,除了decltype(x)的结果
标签: c++ constructor reference initialization declaration