第九章 类和结构体

c++中,结构体是稍有不同的类,类能做的,结构体也可以;

而swift中,结构体与类有较大区别,

结构体与类的区别:

1、结构体不可以继承;

2、结构体没有析构器,结构体实例和所有的值类型变量一样,内存自动分配、自动释放,由操作系统管理,不由程序员控制;

3、类采用自动引用技术机制来管理资源;

4、类可以进行类型检查和类型转换。

结构体和枚举是值类型(包括所有的基本类型都是值类型),类是引用类型,引用类型定义了一个实例进行赋值、

或者作为参数传递给函数时,值不会拷贝,只是引用,任何改变都会影响原来的实例。值类型和引用类型的常量是有区别的,

值类型常量,不可以修改属性,不可以赋值新的实例;引用类型常量,可以修改属性,不可以赋值新实例。

在c++中,没有引用类型,默认都是值类型,除非是有意为之。(将拷贝构造函数和赋值运算符声明为私有类型,显示定义构造函数和虚析构函数)

c++有访问类型public、private、pretected,swift也有访问控制,但是和c++的有很大不同,默认情况下,是internal内部访问控制级别,在同一模块内可以直接访问属性和方法,也即可以直接对属性赋值。

由于有引用类型的概念,swift提供了等价于“===”、不等价于“!==”运算符,用于检测两个常量或变量是否引用同一实例。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容