Ita*_*tay 2 c++ arrays dynamic-memory-allocation
如果你知道这个问题,
假设我有一个其CTOR接收整数的A类;
我做不到以下事情:
A* arr = new A[3](A(2), A(3), A(5));
Run Code Online (Sandbox Code Playgroud)
或者任何其他方式来初始化数组的几个成员.我四处看看,这是不可能的.
我的问题是为什么,我为什么要这样做
A arr[3] = {A(1), A(2), A(3)};
Run Code Online (Sandbox Code Playgroud)
但我不能做到以上?记忆方面或其他什么.
非常感谢你!
在当前标准C++(称为C++ 03)中无法做到这一点的原因是历史性的.这将在即将推出的C++标准中进行清理(目前预计将在今年发布,这将使其成为C++ 11),这将引入所谓的"统一初始化语法".
根据Stroustrup的C++ 0x FAQ,你可以写
A* p = new A[3] {A(1), A(2), A(3)};
Run Code Online (Sandbox Code Playgroud)
你的编译器实际上已经很好地支持了这一点.
| 归档时间: |
|
| 查看次数: |
861 次 |
| 最近记录: |