2009-01-02 117 views

回答

8

POD,普通老式數據,是具有在C.等效

CV-限定的類型是已經合格或者作爲const或揮發性一類型的任何C++類型。

// non cv_qualified 
int one; 
char *two; 

// cv-qualified 
const int three; 
volatile char * four; 

POD類型的數據成員必須是公開的,並且可以是任何的原始類型:布爾,數字類型,枚舉類型,數據指針類型,指針到功能類型,也根據任一前述的陣列。

struct A //POD 
{ 
int n; 
double y; 
}; 

struct B //non-POD 
{ 
private: 
int n; 
double y; 
}; 
+0

,我覺得什麼東西在C++中,使得C++型非等價到c – yesraaj 2009-01-02 04:59:19

+0

POD類型是遞歸定義。您的定義不包括「或任何其他POD類型」。 – Arkadiy 2009-01-02 14:08:53

5

POD代表普通老式數據類型。它通常指的是一個用來存放數據和存取器的類 - 沒有別的。它也暗示該函數沒有vtable,這意味着該類沒有多態成員。這些在輕量級對象中很受歡迎,因爲您不想爲多態類開銷付出代價。

CV-合格C = CONST,V =揮發性

0

很不錯的文章有什麼東西在C++中,使得C++類型 非等價到c - 拉庫瑪

由於CMS說,一個POD類型是具有一個C++型相當於C:所以,它必須遵循C使用了相同的規則:

  • 初始化
  • 複製
  • 佈局
  • 尋址

C++的類型應具有任何構造,絕重載賦值運算符,必​​須具有虛函數,基類,析構函數,並且還非靜態成員是私有的或受保護的。