Computer >> Máy Tính >  >> Lập trình >> C ++

Aggregates và POD trong C ++ là gì?


POD là từ viết tắt trong C ++ có nghĩa là dữ liệu cũ thuần túy. Nó là một lớp / cấu trúc CHỈ có các biến thành viên và không có phương thức, hàm tạo, hàm hủy, hàm ảo, v.v. Ví dụ:

Ví dụ

#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;
}

Cấu trúc MyStruct không có ctor, dtor, v.v. do người dùng xác định và do đó là POD.

Tổng hợp là một mảng hoặc một lớp không có hàm tạo do người dùng khai báo, không có phần tử dữ liệu tĩnh được bảo vệ hoặc riêng tư, không có lớp cơ sở và không có hàm ảo.

Một lớp tổng hợp được gọi là POD nếu nó không có toán tử gán sao chép và hủy do người dùng định nghĩa và không có thành viên nào không tĩnh của nó là lớp không phải POD, mảng không phải POD hoặc một tham chiếu.