聚合(aggregate)
C++語法規定:不能使用初始值列表來初始化"非聚合(non-aggregate)"的對象。那麼,什麼纔算是"聚合"呢?C++認爲聚合包括知足以下條件的數組、類及結構:
不包含任何構造函數。
不包含任何私有/保護成員。
不包含任何基類。
不包含任何虛函數。數組
因此結構體若是定義構造函數, 則列表初始化不能使用。
在c裏面編輯結構體是沒有構造函數, 天然也編譯不過。函數
因此通常跨平臺寫結構體的。
struct A{
int m_nValue;對象
};
這樣, 可是定義的時候, 列表初始化, 也並不能直接附上值編譯