构造函数与析构函数
构造函数和析构函数是类中两个特殊的成员函数,分别负责对象的初始化和内存清理工作,由系统自动调用,无需程序员手动调用,贯穿对象完整的生命周期。
构造函数是在创建对象时自动执行的函数,主要作用是给对象的成员变量初始化。它有着严格的语法规则:函数名必须和类名完全相同,没有返回值类型,也不需要写void。分为默认无参构造函数、有参构造函数和拷贝构造函数三种。如果我们没有手动编写构造函数,编译器会自动生成一个空的无参构造函数;一旦自定义了构造函数,编译器就不会再提供默认构造函数。利用有参构造函数,可以在创建对象的同时直接给成员变量赋值,简化代码,避免对象出现随机垃圾值。
析构函数和构造函数作用相反,是在对象销毁、释放内存前自动执行的函数,主要用来释放对象占用的动态内存,清理资源。析构函数函数名同样和类名一致,前面需要加~符号,它没有参数、没有返回值,且一个类只能有一个析构函数。当程序运行结束、对象离开作用域时,系统会自动调用析构函数,防止出现内存泄漏问题。
通过对比学习,我理清了二者核心区别:构造函数创建对象时调用,可重载;析构函数销毁对象时调用,不可重载。同时我也总结了学习中的易错点:不能给构造函数和析构函数设置返回值;析构函数不能传参;局部对象在离开所在代码块时会立刻调用析构函数,全局对象在程序结束时才调用析构函数。
浙公网安备 33010602011771号