通常将引用绑定到一个简单的对象,
T& t = *new T;
但是,如何将引用与new[]
的输出相关联?
T& ??? = *new T[size];
[注意:Here是一种可能的方式,但我认为应该有更好的方法,这会产生数组效果。]
编辑:这个问题不是关于好/坏编码习惯,还是这种常见/不常见的问题。我想知道这在语法上是否可行?
答案 0 :(得分:2)
通常将引用绑定到一个简单的对象,
不,不是。这种功能是定义良好的C ++代码。但它通常是糟糕的形式。它迫使你以后这样做:
delete &t;
这又是功能性的,并且由规范明确定义。但它非常难看,并且对代码的作用给出了错误的印象。
如何将引用与new []的输出相关联?
没必要。在C和C ++中,指针和数组实际上是相同的(从技术上讲,如果需要,数组会自动转换为指向第一个元素的指针)。所以你可以这样做:
T *t = new T[5];
t[4].stuff();