void main() { }

Hello ,world !

常用链接

统计

最新评论

POD(Plain Old Data)

POD(Plain Old Data)

转载一下吧:
[原地址]http://wanwan722.blogspot.com/2008/10/podplain-old-data-and-nonpod.html

 

看書的時候,一直看到" POD" 這個關鍵字,可能是我從來沒有好好把一本C++的書看完吧(還是眼睛自動忽略 orz),後來上網查了一下,在這邊分享一下好了..

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),如果你真的使用的話,可能會造成嚴重的錯誤。

Reference:
http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=32

Comment:
trivial constructor: 自動被編譯器加入的預設建構子。

posted on 2009-10-30 10:33 only 阅读(877) 评论(0)  编辑 收藏 引用 所属分类: 琐碎编程


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理