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作為成員,沒有使用者定義的析構函式,沒有使用者定義的複製賦值運算子,也沒有...