类的构造与析构函数

每个类都有构造函数和析构函数。即使用户创建的类,系统也会为该类创建默认的构造函数。构造函数不能是虚函数。

在面向对象语言里,这两个函数特别重要。面向对象的语言里,其成员变量和函数都属于对象(除了静态全局变量和静态函数)。我们知道类不能够直接在定义时对其成员变量进行初始化,这部分工作一部分统一放到构造函数来完成(静态成员变量需要在类外进行初始化)。

构造函数没有返回值,其函数名和类名相同。构造函数可以有多个,构成了重载。构造函数可以有参数,当对类进行实例化时,根据实例化所带的参数选择不同的构造函数。

析构函数可以为虚函数,特别是在多态应用时,其基类的构造函数一定要用虚函数。析构函数没有参数,也无返回值。

当对象被创建时,会调用构造函数。构造函数优先调用父类构造函数,如果有嵌套定义的成员变量,再调用嵌套定义成员变量所属类的构造函数,最后调用本身的构造函数。析构函数与构造函数调用顺序正好相反。

当用指针时,new和delete分别会调用构造函数和析构函数,而malloc和free不会调用。

类中的静态全局变量和成员函数不会占用对象空间,只有虚函数,成员变量,指针会占用。

猜你喜欢

转载自blog.csdn.net/wangyhwyh753/article/details/79752906