您的位置:首页 > 职场人生

游戏面试题:struct与class的区别

2015-09-16 11:36 309 查看

http://blog.sina.com.cn/s/blog_48f587a80100k630.html 描述了C++中struct和class的区别

http://www.cnblogs.com/gsk99/archive/2011/05/20/1904552.html 描述了C#中struct和class的区别

在C++中 

区别1:struct默认public,class默认private(继承访问权限,成员访问控制)

继承时,如果一方是struct,一方是class,那么默认取决于子类。

区别2:class关键字可以用来定义模板参数,struct关键字不能

在C#中

区别1:class是引用类型,struct是值类型。因此class可以为null,struct不可以。

区别2:实例化class,创建在堆上,实例化struct,创建在栈上。

区别3:使用的是class对象的引用,直接使用struct。

区别4:class内部可以有初始化器,例如class A{int a=10;},struct内部不能有初始化器(报语法错误)

区别5:class可以有无参构造函数,struct不能(报语法错误)

区别6:class必须用new关键字实例化(class创建在堆上),struct不需要

区别7:class支持继承和多态,struct不支持,但是struct可以实现接口(C++中struct也可以继承和多态)

(因为struct不支持继承,所以struct成员不能以protected修饰)

区别8:class构造函数不需要初始化全部字段,struct构造函数必须初始化所有字段

区别9:class可以自定义析构函数,struct不可以
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: