C++中的POD型别 您所在的位置:网站首页 什么是pod类型 C++中的POD型别

C++中的POD型别

2023-08-25 05:04| 来源: 网络整理| 查看: 265

  最近在阅读《STL源码刨析》的过程中,遇到了POD型别,书中的解释是: 

  POD意指Plain Old Data,也就是标量型别(scalar types)或传统的C struct型别。POD型别必然拥有trivial ctor/dctor/copy/assignment operator函数。(这里的trivial 函数意思是该函数无光痛痒,不重要,即平凡函数)

  但是看完这个解释,我还是没有很清楚的理解所谓POD型别,通过在网上查阅资料,我对POD有了更好的理解。网上讲到一种判断POD型别的方式,即当一个数据类型同时满足”平凡的定义“和”标准布局“,我们可以认为其是一个POD型别的数据。

 

平凡的定义 平凡的结构体

  对于一个类或结构体来讲,平凡的定义是:

平凡的构造/拷贝构造/移动构造函数 平凡的拷贝复制/移动复制运算符 平凡的析构函数 不包含虚函数、虚基类

  测试代码:

#include using namespace std; class A { A() {} }; //自定义构造函数 class B { B(B&) {} }; //自定义拷贝构造函数 class C { C(C&&) {} }; //自定义移动构造函数 class D { D operator=(D&) {} }; //自定义拷贝赋值运算符 class E { E operator=(E&&) {} }; //自定义移动复制运算符 class F { ~F() {} }; //自定义析构函数 class G { virtual void foo() = 0; }; //含有虚函数 class H : G {}; //继承自纯虚类 class I {}; int main() { std::cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有