如何将对象引用与new [](数组)绑定/关联?

时间:2011-07-24 05:54:41

标签: c++ arrays reference new-operator

通常将引用绑定到一个简单的对象,

T& t = *new T;

但是,如何将引用与new[]的输出相关联?

T& ??? = *new T[size];

[注意:Here是一种可能的方式,但我认为应该有更好的方法,这会产生数组效果。]

编辑:这个问题不是关于好/坏编码习惯,还是这种常见/不常见的问题。我想知道这在语法上是否可行?

1 个答案:

答案 0 :(得分:2)

  

通常将引用绑定到一个简单的对象,

不,不是。这种功能是定义良好的C ++代码。但它通常是糟糕的形式。它迫使你以后这样做:

delete &t;

这又是功能性的,并且由规范明确定义。但它非常难看,并且对代码的作用给出了错误的印象。

  

如何将引用与new []的输出相关联?

没必要。在C和C ++中,指针和数组实际上是相同的(从技术上讲,如果需要,数组会自动转换为指向第一个元素的指针)。所以你可以这样做:

T *t = new T[5];
t[4].stuff();