它僅作為被動的收藏的欄位值,不使用封包或者otherobject-oriented特徵。(A plain old data structure(POD) is a data structurethat is represented only as passive collections of field values, without using encapsulationor otherobject-orientedfeatures.)
在C++中,我們把傳統的C風格的struct叫做POD(Plain Old Data)對象。一般來說,POD對象應該滿足如下特性。
對於POD類型T的對象,不管這個對象是否擁有類型T的有效值,如果將該對象的底層位元組序列複製到一個字元數組(或者無符號字元數組)中,再將其複製回對象,那么該對象的值與原始值一樣。
對於任意的POD類型T,如果兩個T指針分別指向兩個不同的對象obj1和obj2,如果用memcpy庫函式把obj1的值複製到obj2,那么obj2將擁有與obj1相同的值。
簡言之,針對POD對象,其二進制內容是可以隨便複製的,在任何地方,只要其二進制內容在,就能還原出正確無誤的POD對象。對於任何POD對象,都可以使用memset()函式或者其他類似的記憶體初始化函式。