[英]C++ array elements order of construction
C ++中是否有關於數組元素構造順序的保證?
#include <iostream>
using namespace std;
struct A {
A() { cout << this << endl; }
};
int main()
{
cout << "[0] is " << new A[3];
}
打印出來
0x602010
0x602011
0x602012
[0] is 0x602010
意味着元素是按照[0],[1]和[2]的順序構建的。 該語言是否保證該順序?
是的,這是由C ++ 11 12.6 / 3([class.init] / 3)保證的:
當一個類對象數組被初始化(顯式或隱式)並且元素由構造函數初始化時,應該按照下標順序為數組的每個元素調用構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.