簡體   English   中英

通過默認c'tor進行C ++ pod初始化

[英]C++ pod initialization via default c'tor

考慮一下這個POD:

struct T
{
   int i;
   char c;
};

在哪個C ++標准中,POD成員的要求是通過默認的c'tor引入(或者從標准開始)到初始化為零?

是的,這意味着沒有用戶指定的c'tor,'i'和'c'都將初始化為0.請參閱http://msdn.microsoft.com/en-us/library/80ks028k%28VS.80%29。 ASPX

我不知道我是否理解你的問題。

這意味着沒有用戶指定的c'tor,'i'和'c'都將被初始化為0。

不必要。

例如:

T x; // `i` and `c` are uninitialized

T *ptr = new T; // `i` and `c` are uninitialized
T *pptr = new T(); //`i` and `c` are zero initialized as `T()` implies value initialization

T x(); // x is a function returning a type T and taking no arguments.

准確地說, value initialization (C ++ 03 Section $ 8.5 / 5)是你正在尋找的東西。 它是在C ++ 03中引入的。

你所說的正確稱為“值初始化”。 它是在C ++ 03中引入的(它在§8.5/ 5中定義,如果你想查看細節)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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