POD数据了解

时间:2023-03-09 09:47:07
POD数据了解
Plain old data (普通旧的数据);

POD 是Plain Old Data的簡寫,是指一些系統的int, char, float、指標、array之類的資料型別,這應該蠻好想像的,就是C++ compiler提供的內建型別,比較特別的是類別與結構,如果類別和結構帶有trivial constructor,也是POD的一種

class vector3D

      float x, y, z; 
} ; 
struct size

      int width, height; 
} ;

Non-POD當然就是POD的相反囉,可能是很複雜的類別或結構。

生命週期:
1. POD: 和出現在記憶體的時間一樣
2. Non-POD: 開始在constructor,結束在destructor

所以POD和Non-POD是有差別的,因此一些memcpy, memcmp等C function不適合用在Non-POD的物件上(沒有constrctor/destructor),如果你真的使用的話,可能會造成嚴重的錯誤。