har*_*ris 11 c++ dynamic-arrays
在我正在阅读的书中(Herbert Schildt的C++ Complete Reference),它表示没有使用分配的数组new可以有一个初始化器.
我不能使用new?初始化动态分配的数组?如果不是什么原因呢?
CB *_*ley 18
这不是真的(你几乎肯定()会给自己一个替代参考),你可以使用一个空的初始化器()来初始化数组但是,在使用数组new时你不能单独初始化数组元素.(见ISO/IEC 14882:2003 5.3.4 [expr.new]/15)
例如
int* p = new int[5](); // array initialized to all zero
int* q = new int[5]; // array elements all have indeterminate value
Run Code Online (Sandbox Code Playgroud)
没有根本原因不允许更复杂的初始化器只是因为C++ 03没有它的语法结构.在下一个C++版本中,您将能够执行此类操作.
int* p = new int[5] {0, 1, 2, 3, 4};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4254 次 |
| 最近记录: |