- 类的定义和结构体类似,但编译器并没有为类自动生成可以传入成员值的初始化器
//这里可以看到,类是没有自动初始化器的
class Point {
var x: Int = 0
var y: Int = 0
}
var p1 = Point(x: 1)//报错
var p2 = Point(y: 2)//报错
var p3 = Point()
var p4 = Point(x: 1, y: 2)//报错
- 再看一种情况,class中的成员没有默认值,下边这种情况也会发生报错
class Point {//报错 Class 'Point' has no initializers
var x: Int
var y: Int
}
var p = Point()//报错 'Point' cannot be constructed because it has no accessible initializers
- 再看一种情况,class中的所有成员都有一个对应的默认值,编译器会为class生成无参的初始化器
class Point {
var x: Int = 0
var y: Int = 0
}
var p = Point()