什么是C ++中的聚合和POD?
POD在C++中是首字母缩写,表示纯旧数据。这是一个类/结构,仅具有成员变量,而没有方法,构造函数,析构函数,虚函数等。例如,
示例
#include<iostream> using namespace std; //POD- struct MyStruct { int key; string data; }; int main() { struct MyStruct s; s.key = 1; s.data = "hello"; return 0; }
MyStruct结构没有用户定义的ctor,dtor等,因此是POD。
聚合是没有用户声明的构造函数,没有私有或受保护的非静态数据成员,没有基类,也没有虚函数的数组或类。
如果聚合类没有用户定义的复制分配运算符和析构函数,并且其所有非静态成员都不是非POD类,非POD数组或引用,则称为POD。