C 11 POD資料型別

2021-09-22 06:03:06 字數 1717 閱讀 6280

1.有平凡的建構函式

2.有平凡的拷貝建構函式

3.有平凡的移動建構函式

4.有平凡的拷貝賦值運算子

5.有平凡的移動賦值運算子

6.有平凡的析構函式

7.不能包含虛函式

8.不能包含虛基類

[cpp]view plain

copy

#include "stdafx.h"  

#include 

using namespace std;  

class a  };  

class b  };  

class c  };  

class d  };  

class e  };  

class f  };  

class g ;  

class h : g {};  

class i {};  

int _tmain(int argc, _tchar* ar**)    

執行結果

1.所有非靜態成員有相同的訪問許可權

2.繼承樹中最多只能有乙個類有非靜態資料成員

3.子類的第乙個非靜態成員不可以是基類型別

4.沒有虛函式

5.沒有虛基類

6.所有非靜態成員都符合標準布局型別

[cpp]view plain

copy

#include "stdafx.h"  

#include 

using namespace std;  

class a   

;  class b1  

;  class b2  

;  class b : b1, b2  

;  class c1 {};  

class c : c1  

;  class d ;  

class e : d {};  

class f ;  

int _tmain(int argc, _tchar* ar**)    

執行結果

當乙個資料型別滿足了」平凡的定義「和」標準布局「,我們則認為它是乙個pod資料。可以通過std::is_pod來判斷乙個型別是否為pod型別。

如文章開頭說的,乙個pod型別是可以進行二進位制拷貝的,看看下面的例子。

[cpp]view plain

copy

#include "stdafx.h"  

#include 

#include 

using namespace std;  

class a   

;  int _tmain(int argc, _tchar* ar**)  

system("pause");  

return 0;  

}  

執行結果

可以看到,對乙個pod型別進行二進位制拷貝後,資料都成功的遷移過來了。

c 11 pod型別 了解

啥是pod型別?pod全稱plain old data。通俗的講,乙個類或結構體通過二進位制拷貝後還能保持其資料不變,那麼它就是乙個pod型別。平凡的定義 1.有平凡的建構函式 2.有平凡的拷貝建構函式 3.有平凡的移動建構函式 4.有平凡的拷貝賦值運算子 5.有平凡的移動賦值運算子 6.有平凡的析...

POD資料型別

pod全稱plain old data 資料型別滿足了 平凡的定義 和 標準布局 通俗的講,乙個類或結構體通過二進位制拷貝後還能保持其資料不變,那麼它就是乙個pod型別。平凡的定義 1.有平凡的建構函式 2.有平凡的拷貝建構函式 3.有平凡的移動建構函式 4.有平凡的拷貝賦值運算子 5.有平凡的移動...

理解POD資料型別

pod全稱plain old data。字面意思,普通的,舊的資料型別。通俗的講,乙個類或結構體通過二進位制拷貝後還能保持其資料不變,那麼它就是乙個pod型別。在維基百科中有 c 中的普通舊資料結構是乙個聚合類,它只包含pds作為成員,沒有使用者定義的析構函式,沒有使用者定義的複製賦值運算子,也沒有...