2009-01-02 100 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++的类型应具有任何构造,绝重载赋值运算符,必​​须具有虚函数,基类,析构函数,并且还非静态成员是私有的或受保护的。