Новые условия для начинающих в C ++? - PullRequest
1 голос
/ 02 января 2009

Что это значит под типом POD? Cv-qualified?

Ответы [ 4 ]

8 голосов
/ 02 января 2009

POD, Plain Old Data, - это любой тип C ++, имеющий эквивалент в C.

cv-квалифицированный тип - это тип, квалифицированный как const или volatile.

// non cv_qualified
int one; 
char *two; 

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

Элементы данных типа POD должны быть открытыми и могут иметь любые примитивные типы: bool, числовые типы, типы перечисления, типы указателей данных, тип указателя на функцию, а также массивы любого из предыдущих.

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

struct B //non-POD
{
private:
 int n;
 double y;
};
5 голосов
/ 02 января 2009

POD означает Обычные старые данные тип. Обычно это относится к классу, который используется для хранения данных и методов доступа - ничего больше. Также подразумевается, что функция не имеет vtable, что означает, что нет полиморфных членов класса. Они популярны для легких объектов, где вы не хотите платить цену за полиморфный класс.

CV-квалифицированное . C = Const, V = летучий .

1 голос
/ 02 января 2009

Очень хорошая статья о POD

0 голосов
/ 02 января 2009

какие вещи в с ++ делают тип с ++ не эквивалентно c - rajKumar

Как говорит CMS, тип POD - это тип C ++, имеющий эквивалент в C: поэтому он должен следовать тем же правилам, которые использует C для:

  • инициализация
  • копирование
  • расположение
  • адресация

Тип C ++ должен не иметь какой-либо конструктор, должен не перегружать оператор присваивания, должен not иметь виртуальные функции, базовые классы, деструктор и также не -статические члены, которые являются частными или защищенными.

...