class和struct的区别

 我来答
千锋教育
2016-07-19 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
class和struct的区别:
1、class是引用类型,struct是值类型;
2、class可以继承类、接口和被继承,struct只能继承接口,不能被继承;
3、class有默认的无参构造函数,有析构函数,struct没有默认的无参构造函数,且只能声明有参的构造函数,没有析构函数;
4、class可以使用abstract和sealed,有protected修饰符,struct不可以用abstract和sealed,没有protected修饰符;
5、class必须使用new初始化,结构可以不用new初始化;
6、class实例由垃圾回收机制来保证内存的回收处理,而struct变量使用完后立即自动解除内存分配;
7、从职能观点来看,class表现为行为,而struct常用于存储数据;
8、作为参数传递时,class变量以按址方式传递,而struct变量是以按值方式传递的。
zj526691824
2018-03-31 · TA获得超过458个赞
知道答主
回答量:5
采纳率:0%
帮助的人:832
展开全部
  1. struct更适合看成是一个数据结构的实现体,class更适合看成是一个对象的实现体。

  2. struct没有继承,没有封装,要说封装只有初步封装。而class把数据,接口可以以三种类型封装,private,public,protected;还可以继承和派生。

  3. 它们都可以提供自己的接口函数,构造函数。一个类可以由结构继承而来。struct只能叫做数据的集合,外部可以任意访问,但是类就完成了封装,维护了数据安全,这就是面向对象的理念。

  1. class里可以定义私有成员和保护成员而结构体里所有的成员,均为公用成员

  2. struct想用{}来赋初值,它也必须满足很多的约束条件,这些条件实际上就是让struct更体现出一种数据机构而不是类的特性。那为什么在上面仅仅将struct改成class,{}就不能用了呢?其实问题恰巧是之前所讲的——访问控制!如果将struct改成class的时候,访问控制由public变为private了,那当然就不能用{}来赋初值了。加上一个public,class也是能用{}的,和struct毫无区别。

  3. 从上面的区别,可以看出,struct更适合看成是一个数据结构的实现体,class更适合看成是一个对象的实现体。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-07-01
展开全部
c中结构体和类的最大区别是结构体不能定义成员函数。
c++中结构体是可以定义成员函数的,所以c++中结构体和类基本是一样,唯一的不同点在于,结构体中缺省权限是public,类中缺省权限是private。即如果你在结构体和类中没有写public等的时候,结构体默认为public,类中默认为private。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七米永Q
2016-07-01
知道答主
回答量:3
采纳率:0%
帮助的人:2万
展开全部
struct是内部所有成员变量与函数都为public类型的class
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式