簡體   English   中英

C ++數組元素的構造順序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM