一.构造函数
由于类的封装性,不能象普通变量一样初始化 构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态在对象创建时由系统自动调用。如果程序中未声明,则系统自动产生出一个缺省形式的构造函数。
构造函数的作用是对对象的本身做初始化工作,也就是给用户提供初始化类中成员变量的一种方式。
如果一个类中没有任何定义的构造函数,那么C++编译器在某些情况下会为该类提供一个默认的构造函数,这个默认的构造函数是一个不带参数的构造函数。只要一个类中定义了一个构造函数,不管这个构造函数是否是带参数的构造函数,C++编译器就不再提供默认的构造函数。也就是说,如果为一个类定义了一个带参数的构造函数,还想要无参数的构造函数,则必须自己定义。
二.析构函数
完成对象被删除前的一些清理工作。在对象的生存期结束的时刻系统自动调用它,然后再释放此对象所属的空间。如果程序中未声明析构函数,编译器将自动产生一个缺省的析构函数。
析构函数是“反向”的构造函数。析构函数不允许有返回值,更重要的是析构函数不允许带参数,并且一个类中只能有一个析构函数。析构函数的作用正好与构造函数相反,析构函数用于清楚类的对象,当一个类的对象超出它的作用范围,对象所在的内存空间被系统回收,或者在程序中用delete删除对象时,析构函数将自动被调用。对一个对象来说,析构函数是最后一个被调用的成员函数。
三.函数的重载
两个构造函数,它们的函数名是一样的,只是参数的类型和个数不一样。这在C语言中是不允许的,而在C++中上述定义是合法的,这就是C++中函数的重载。重载构成的条件:函数的参数类型、参数个数不同,才能构成函数的重载。在函数重载时要注意函数带有默认参数的这种情况。
网友评论