1.构造函数
无返回值不是指返回值为void,而是指不用写返回值;构造函数可以重载,也就是说一个类可以有多个构造函数,就有多种初始化方式。
对象实例化的时候会自动调用构造函数;无参的构造函数不能这样写stack st()
,带参数的可以这样写stack st(4)
,有了构造函数不用担心对象初始化问题。
为什么不能理解为构造函数的使用就是st.stack(4)
?不合理,因为在这里的时候st还没有实例化出来,构造函数不能用对象去调用。如果这样写stack st;st.stack(4)
,如果这样写,和初始化没区别,所以不用显示调用。
无参的构造函数st.stack()
不能带括号,因为会报错,原因是编译器区分不了是函数声明还是在定义对象,编译器区分不了,st.stack(4)
但是有参的可以这样写,因为如果是函数声明的话要带参数类型,即stack st(int x)
。
2.析构函数
栈帧结束,局部变量销毁。析构函数主要完成的是对象中资源的清理,动态开辟的空间需要释放,所以需要清理,要调用析构函数。在对象销毁的时候会调用析构函数,就是出了作用域,生命周期结束的时候。
析构函数没有参数,没有返回值,不用写返回值;
自动调用是构造函数和析构函数的精华
类中可以随便定义函数,我们定义一个Date类。不用在前面加this。
标签:函数,st,析构,返回值,stack,构造函数 From: https://blog.51cto.com/u_15562309/7500847