`

struct

    博客分类:
  • c++
阅读更多
struct{
	int I;
	double d;
}
size = 12;

struct{
	char c;//size=1;
	double d;
}
size = 12;

struct{
	int I;
	long double ld;
}
size = 16;

struct{
	char c;
	long double ld;
}
size = 16;

struct和class有两个区别:
第一:struct中的成员默认是public的,class中的默认是private的。
第二:在用模版的时候只能写template <class Type>或template <typename Type>不能写template <struct Type>。

此外,如果没有多态和虚拟继承,在C++中,struct和class的存取效率完全相同!简单的说就是,存取class的data member和非virtual function效率和struct完全相同!不管该data member是定义在基类还是派生类的。

如果不是为了和C兼容,C++中就不会有struct关键字。因此建议是:如果不需要与C兼容或传递参数给C程序,不要在C++中用struct。

注意class的data member在内存中的布局可不一定是data member的申明次序。C++只保证处于同一个access section的data member按照申明次序排列。
分享到:
评论

相关推荐

    typedef struct 与 struct 的区别及初始化

    在C/C++编程语言中,`typedef` 和 `struct` 是两种不同的声明结构体类型的方式,它们各有特点,但也有一定的关联。理解这两者之间的差异以及如何初始化结构体是编程中非常重要的概念。 首先,`struct` 关键字用于...

    mapstruct-1.2.0.Final-API文档-中文版.zip

    赠送jar包:mapstruct-1.2.0.Final.jar; 赠送原API文档:mapstruct-1.2.0.Final-javadoc.jar; 赠送源代码:mapstruct-1.2.0.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.2.0.Final.pom; 包含翻译后...

    mapstruct-1.3.1.Final-API文档-中文版.zip

    赠送jar包:mapstruct-1.3.1.Final.jar; 赠送原API文档:mapstruct-1.3.1.Final-javadoc.jar; 赠送源代码:mapstruct-1.3.1.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.3.1.Final.pom; 包含翻译后...

    mapstruct-1.3.1.Final-API文档-中英对照版.zip

    赠送jar包:mapstruct-1.3.1.Final.jar; 赠送原API文档:mapstruct-1.3.1.Final-javadoc.jar; 赠送源代码:mapstruct-1.3.1.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.3.1.Final.pom; 包含翻译后...

    mapstruct-1.1.0.Final-API文档-中文版.zip

    赠送jar包:mapstruct-1.1.0.Final.jar; 赠送原API文档:mapstruct-1.1.0.Final-javadoc.jar; 赠送源代码:mapstruct-1.1.0.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.1.0.Final.pom; 包含翻译后...

    struct和typedef struct区别

    "struct和typedef struct的区别" 在编程语言中,struct和typedef struct都是用来定义结构体类型的,但它们之间存在一些关键的区别。 首先,在C语言中,定义一个结构体类型需要使用typedef关键字,例如: ```c ...

    xml和struct之间的相互转换

    XML(eXtensible Markup Language)和C语言中的struct是两种不同的数据表示方式。XML是一种用于标记数据的标准化格式,而struct是C语言中用来结构化数据的类型。在编程中,有时我们需要在两者之间进行转换,以实现...

    mapstruct-jdk8-1.2.0.Final-API文档-中文版.zip

    赠送jar包:mapstruct-jdk8-1.2.0.Final.jar; 赠送原API文档:mapstruct-jdk8-1.2.0.Final-javadoc.jar; 赠送源代码:mapstruct-jdk8-1.2.0.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-jdk8-1.2.0....

    mapstruct-jdk8-1.2.0.Final-API文档-中英对照版.zip

    赠送jar包:mapstruct-jdk8-1.2.0.Final.jar; 赠送原API文档:mapstruct-jdk8-1.2.0.Final-javadoc.jar; 赠送源代码:mapstruct-jdk8-1.2.0.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-jdk8-1.2.0....

    structtype&def_struct

    在编程语言中,`struct`关键字用于定义一种复合数据类型,它允许我们将多个不同类型的变量组合成一个单一的实体。在C和C++中,`struct`的使用方式略有不同,特别是在与`typedef`关键字结合使用时。 1. `struct`定义...

    matlab开发-struct2double

    在MATLAB编程环境中,`struct2double`是一个非常实用的函数,主要用于将结构体(struct)数据转换成双精度浮点数(double)数组。这个功能在处理大量结构体数据时尤其有用,例如当你需要对结构体数组进行数值计算...

    ip struct ip struct

    综上所述,通过对 `struct ip_hdr`、`struct ip` 和 `struct eth_hdr` 的分析,我们不仅了解了 IP 数据报首部的关键组成部分,还进一步掌握了以太网头部的结构和意义。这些知识点对于理解互联网工作原理以及进行网络...

    golang struct 自动生成工具

    https://github.com/whr-helen/go-struct-auto 自动构建工具使用 安装包命令:go get github.com/whr-helen/go-struct-auto 注释:参数信息 -host host改为自己数据库的地址(默认127.0.0.1) -port port改为...

    spring boot3+jpa+lombok+mapstruct实现的restful api例子

    在本项目中,"spring boot3+jpa+lombok+mapstruct实现的restful api例子"是一个集成多种技术的示例,旨在展示如何高效地构建RESTful API服务。下面将详细介绍这些关键技术及其相互间的配合。 1. **Spring Boot 3**:...

    systemverilog中struct和union的一种用法

    SystemVerilog 中 struct 和 union 的应用 SystemVerilog 是一款功能强大的硬件描述语言,广泛应用于 FPGA 和 ASIC 设计中。其中,struct 和 union 是两种常用的数据结构,它们可以用来组织和存储数据。本文将介绍 ...

    JavaStruct.jar

    JavaStruct.jar是一个包含JavaStruct库的归档文件,它是在Google Code上发布的,现在已经不太容易找到了。这个库专门设计用于处理结构体数据类型,提供了一种在Java中操作类似于C或C++中的结构体的方式。Java本身并...

    详解Go开发Struct转换成map两种方式比较

    在Go语言的开发过程中,经常需要将结构体(Struct)转换为映射(map),尤其是在与数据库交互时,许多ORM框架或数据库操作API会使用map作为参数。本文将介绍两种在Go语言中将Struct转换为map的方法,并对它们进行...

    matlab开发-ini2struct

    在MATLAB中,`ini2struct` 是一个用于解析`.ini`配置文件并将其内容转换为MATLAB结构体的函数。`.ini`文件通常用于存储应用程序的设置和配置信息,结构清晰,易于读写。本项目`matlab开发-ini2struct` 提供了一个...

    javastruct.zip

    JavaStruct.zip是一个包含JavaStruct.jar和源码的压缩包,主要面向学习或使用JavaStruct框架的人群。这个框架可能是为了简化Java开发中的某些结构化任务,例如数据结构、算法实现或者设计模式等。源码的提供使得用户...

Global site tag (gtag.js) - Google Analytics