swift学习笔记

第九章 类和结构体

2017-07-15  本文已影响0人  运柱

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

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

结构体与类的区别:

1、结构体不可以继承;

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

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

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

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

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

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

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读