考慮這種POD:C++莢初始化
struct T
{
int i;
char c;
};
在其C++標準是POD成員的要求通過引入默認c'tor被初始化爲零(或者是它在從標準開始)?
是的,這是指未經用戶指定c'tor,「我」和「c」都將被初始化爲0 見http://msdn.microsoft.com/en-us/library/80ks028k%28VS.80%29.aspx
考慮這種POD:C++莢初始化
struct T
{
int i;
char c;
};
在其C++標準是POD成員的要求通過引入默認c'tor被初始化爲零(或者是它在從標準開始)?
是的,這是指未經用戶指定c'tor,「我」和「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段$ 8.5/5,)就是你正在尋找的東西。它是在C++ 03中引入的。
你在說什麼正確地稱爲「值初始化」。它是在C++ 03中引入的(它定義在§8.5/ 5,以防你想查看細節)。