数据之POD数据类型

技术数据之POD数据类型 数据之POD数据类型1.POD数据类型的起源
在C语言时代,只有基本数据类型char、int、float和复合数据类型数组、指针、结构体等。但是在C++时代,出现了抽象数据结构

数据的数据类型

1.POD数据类型的起源

在C语言时代,只有char、int、float等基本数据类型和数组、指针、结构等复合数据类型。然而,在C时代,抽象数据结构类出现了,它伴随着三个特征:封装性、继承性和多态性。这些特点导致了数据类型类与ANCI C不兼容,为了使其兼容,引入了POD数据结构的概念。

2.POD数据类型的作用

POD数据类型通常是?在系统的边界,也就是不同的系统只能以底层数据的形式进入?互动的,系统的?层不能相互兼容。例如,当对象的字段值由外部数据构建时,系统无法导入该对象。语义查释,这个时机对吗?存储数据的POD。

3. POD数据类型的定义

C 11,推局势?有两种:

3.1.类型是平凡的

如果类型是平凡的,它可以静态初始化,并且可以?Cpy直接复制数据?没必要?复制构造函数。它的?定义了存储期以其开始的对象的存储。等到构造函数完成。普通班还是结构一定要满?

有一个普通的默认构造函数,但是?(SomeConstructor()=default的默认语法;);

有普通的复制和移动构造函数,但是?默认语法;

有普通的复制和移动操作符,但是?默认语法;

有一个普通的析构函数,不能是虚函数;

只有当类没有虚拟成员函数或虚拟基类时,构造函数才是微不足道的;

仅当没有静态数据成员时,复制/移动操作符才是微不足道的。

3.2.类型是标准布局的

类型-标准-布局意味着它是有序的,其成员兼容C语言?这是满满的要求?

没有虚函数;

没有虚拟基类;

全部?静态数据成员具有相同的访问控制(公共、私有、受保护);

全部?静态数据成员,包括任何基类中的成员,都存在于类继承系统中?上课。

以上规则是否适用?所有的基类和类继承系统?静态数据成员不一样?类型的基类型被定义为第一个?a?静态数据成员?类/结构/联合是POD。当它是普通的标准布局时,所有的数据成员都是POD。可以分为两个概念,对象可以不满意?其中?但是满了?再说?一个。例如,该类具有复杂的移动和复制构造函数,因此它并不琐碎,但它可能是标准布局,因此它可以与C程序进行互操作。同样的,公私分明的阶级?因此,静态数据成员不是标准的布局,但可能是微不足道的,因此可以被memcpy操作。

4.POD数据类型的特性

当源代码与ANSI C兼容时POD的类型?往往很重要。POD对象和C语言?的对应对象有共性吗?一些特性,包括初始化、复制、内存布局和寻址。

初始化:对于非常数的POD对象,如果没有初始化声明,缺省情况下初始值不确定的POD对象会被初始化为0;静态POD对象被初始化为给定的初始值。如果是本地静态POD对象,会在?它在哪里?域之前已初始化;为了什么?静态POD对象,它在任何动态初始化之前被赋予初始值。

内存布局:内存布局——POD对象的组成字节是连续的。

复制:POD对象可以直接复制吗?(比如?Memcpy())到其他字符数组或相同POD类型的对象,保持其值不变。POD类型可以吗?作为标准模板字符串类的一个字符,由于这个原因,如果函数的返回值是非POD类型,函数的返回值就不能通过寄存器传递。

寻址:POD对象的地址可以是?地址常量表达式;POD成员介绍?会不会是?引用?常量表达式,POD-结构对象的指针适合通过重新解释_cast转换为它们的初始值。

参考资料

https://zhuanlan.zhihu.com/p/45545035

本文来源于博客公园,作者:满禄的个人博客,请注明原链接:https://www.cnblogs.com/manlujun/p/15664735.html.

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/139164.html

(0)

相关推荐

  • ASP.NET Core中使用滑动窗口限流的问题举例分析

    技术ASP.NET Core中使用滑动窗口限流的问题举例分析本篇内容主要讲解“ASP.NET Core中使用滑动窗口限流的问题举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家

    攻略 2021年12月10日
  • 如何分析针对HTTPS浏览器会话的攻击

    技术如何分析针对HTTPS浏览器会话的攻击如何分析针对HTTPS浏览器会话的攻击,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。关于SSL网站的好消息就是:大

    攻略 2021年11月12日
  • spring的注入依赖set方法吗(spring如何注入类)

    技术Spring中@Value注入复杂类型怎么用这篇文章主要为大家展示了“Spring中@Value注入复杂类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Sprin

    攻略 2021年12月16日
  • 适用于所有人的图形和艺术字设计软件 Art Text中文激活版

    技术适用于所有人的图形和艺术字设计软件 Art Text中文激活版 适用于所有人的图形和艺术字设计软件 Art Text中文激活版Art Text 4 Mac破解版 (艺术字和图标设计软件)
    适用于所

    礼包 2021年12月7日
  • html盒子模型由什么组成(html盒子模型具有哪些内容)

    技术html的盒子模型有哪些本篇内容主要讲解“html的盒子模型有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html的盒子模型有哪些”吧!

    攻略 2021年12月23日
  • 如何进行ADO.NET访问数据库技术分析

    技术如何进行ADO.NET访问数据库技术分析如何进行ADO.NET访问数据库技术分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。着重解释ADO.NET访问

    攻略 2021年12月1日