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라고 합니다.