C++结构体和类的区别
在C++中,结构体是一种特殊形态的类。
结构体和类的唯一区别就是: 结构体和类具有不同的默认访问控制属性。
类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private)
结构体中,对于未指定任何访问控制属性的成员,其访问控制属性为公有类型(public)
C++中,不使用结构体丝毫不会影响程序的表达能力。C++之所以要引入结构体,是为了保持和C程序的兼容性。
但有时仍会在C++中使用结构体,是因为,可以使用结构体将不同类型数据组成整体,方便于保存数据。(若用类来保存,因类中成员默认为私有,还要为每个数据成员特定函数来读取和改写各个属性,比较麻烦。)
C语言中结构体不允许定义函数成员,且没有访问控制属性的概念。
C++为C语言中的结构体引入了成员函数、访问控制权限、继承、包含多态等面向对象特性。
C++在struct之外引入了class关键字,但为了保持与C程序的兼容,C++保留了struct关键字,并规定结构体默认访问控制权限为公有类型。
另外,C语言中,空结构体的大小为0,而C++中空结构体(属于空类)的大小为1。
C++中空类的大小为1的原因:
空类也可以实例化,类实例化出的每个对象都需要有不同的内存地址,为使每个对象在内存中的地址不同,所以在类中会加入一个隐含的字节。
C++结构体和类的区别相关推荐
- 【唐老狮】C#——结构体和类的区别
[结构体和类的区别] 结构体是值类型,类是引用类型 结构体存在栈中,类存在堆中 结构体成员不能使用protected访问修饰符,而类可以 结构体成员变量申明不能指定初始值,而类可以 结构体不能申明无参 ...
- [C#]结构体和类的区别
结构体和类的区别: 在做一个项目时,使用了较多的结构体,并且存在一些结构体的嵌套,即某结构体成员集合包含另一个结构体等,总是出现一些奇怪的错误,才终于下决心好好分析一下到底类和结构体有啥不同, ...
- 结构体和类的区别详细讲解
结构体和类的区别 C的结构体和C++结构体的区别 C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数.所以C的结构体是没有构造函数.析构函数.和this指针的. C的结构体对 ...
- C#中的结构体与类的区别
转载自:https://www.cnblogs.com/to-creat/p/5268729.html C#中的结构体与类的区别 经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自 ...
- C#中结构体和类的区别
结构体和类同样能够定义字段,方法和构造函数,都能实例化对象,这样看来结构体和类的功能好像是一样的了,但是他们在数据的存储上是不一样的 C#结构体和类的区别问题 这两种数据类型的本质区别主要是各自指向的 ...
- C语言结构体与C++中结构体和类的区别
在C++中除了类中可以有构造函数和析构函数外,结构体中也可以包含构造函数和析构函数,这是因为结构体和类基本雷同,唯一区别是,类中成员变量默认为私有,而结构体中则为公有.注意,C++中的结构体是可以有析 ...
- C++中结构体与类的区别介绍
在参与以C++为编程基础的项目应用中总会遇到结构体类型与类的数据类型,但是其具体应用区别模糊不清 现将其区别总结如下,欢迎补充共同学习(先介绍C和C++中结构体的不同,再对比C++中结构体与类的区别) ...
- swift string转int_swift中结构体和类的区别(值类型和引用类型的区别)
在swift中结构体和类有着更多的相同之处,在一般的使用中能够做到互相替换.我们可以先看看官方文档的描述: Unlike other programming languages, Swift does ...
- 结构体和类的区别(待考究)
1.C的结构体和C++结构体的区别 1.1 C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数.所以C的结构体是没有构造函数.析构函数.和this指针的. 1.2 C的 ...
- C/C++中结构体和类的区别
结构体是为能够保存不同类型的数据而存在的,因为数组朱能够保存一种数据类型,而在平时的编程中我们需要用到不同数据类型的一个整体结构,例如一个学生就有不同的属性,姓名,年龄,学号,性别等等,就需要用不同的 ...
最新文章
- mybatis的一对一 一对多 多对多
- C++用顶层函数重载操作符(一)
- spo2数据集_Arduino 血氧心率模块传感器数据采集
- jQuery EasyUI API 中文文档 - 进度条
- 世纪渣男何书桓! | 今日最佳
- 阿里一面,说说你知道消息中间件的应用场景有哪些?
- source insight 配置
- CrystalReport runtime的下载地址
- PHP面相对象中的重载与重写
- js读取服务器excel文件是否存在,js读取Excel文件
- AndroidX使用
- 华为3COM正式更名为『杭州华三通信技术有限公司(H3C)』
- 微信小程序腾讯服务器地址要购买吗,微信小程序JavaScript SDK
- php 指纹验证失败,为什么手指沾了水,指纹识别就会失效?液体会导致指纹解锁失败?...
- android 摄像头测血压,自拍测血压的手机软件来了!准确率高达95%!
- 汇编语言(一)-基础知识
- 回归分析中的p值和R方哪个更重要?
- 深度学习(七)——图像验证码破解(数字加减验证码)
- 忽然看到自己十年前发的关于转计算机专业的帖子
- 利用bmob实现简单的注册和登录
热门文章
- opengl 绘制房间 卧室 :桌椅板凳+床+衣柜
- 连续函数可视化——连续调制波形y=sin(t)sin(9t)
- usb口拒绝访问_U盘插入后显示拒绝访问怎么办?
- 中小企业OA系统方案选型六个误区
- 交易模型的定义及理论基础
- 将图片画到canvas 上的几种方法
- Spring配置文件获取系统的环境变量
- MM配置:评估范围、评估控制、评估范围分组,评估类,移动类型的科目分组,自动记账配置
- java 网页提示被阻止怎么办_win7系统网页提示应用程序被JAVA安全阻止_win7系统网页提示应用程序被JAVA安全阻止解决方法-系统屋...
- 中专计算机应用基础视频教程,中职计算机应用基础教学教程.doc