美文网首页
析构函数

析构函数

作者: 择一城终老_蜗牛 | 来源:发表于2018-07-12 16:25 被阅读0次

    析构函数与构造函数相反,在一个类的实例被释放之前,析构函数被调用,析构函数使用关键字deinit来定义,类似于初始化函数用的init来定义,析构函数没有返回值,没有参数,不需要小括号,所以不能重载,每一个类最多有一个析构函数

    class Circle{
    
        let π = 3.1415926
        var r:Double
    
        // 定义一个制定构造函数
        init(r:Double) {
        
            self.r = r
        }
    
        // 定义一个析构函数
        deinit {
            print("释放之前调用该析构函数")
        }
    }
    
    // 初始化一个可选性的圆实例,表示可以为nil
    var circle:Circle? = Circle(r:3)
    print("圆的面积为:\(2 * circle!.π * circle!.r * circle!.r)")
    
    // 当实例为nil时,会调用析构函数
    circle = nil
    circle = Circle(r:10)
    print("圆的周长:\(2 * circle!.π * circle!.r)")
    
    image.png

    相关文章

      网友评论

          本文标题:析构函数

          本文链接:https://www.haomeiwen.com/subject/ehsrpftx.html