构造函数
构造函数用途:
- 创建对象
- 初始化对象
- 类型转换
定义:(生而不同)
1.函数名与类名相同。
2.构造函数无函数返回类型说明。注意是没有而不是void,即什么也不写,也不可写void。实际上构造函数有返回值,返回的就是构造函数所
创建的对象。
3.在程序运行时,当新的对象被建立,该对象所属的类构造函数自动被调用,在该对象生存期中也只调用这一次。
4.构造函数可以重载。严格地讲,类中可以定义多个构造函数,它们由不同的参数表区分,系统在自动调用时按一般函数重载的规则选一个
执行。
5.构造函数可以在类中定义,也可以在类中声明,在类外定义。
6.如果类说明中没有给出构造函数,则C+ +编译器自动给出一个缺省的构造函数: 类名(void) { }
但只要我们定义了一个构造函数,系统就不会自动生成缺省的构造函数。只要构造函数是无参的或者只要各参数均有缺省值的,C++编
译器都认为是缺省的构造函数,并且缺省的构造函数只能有一个 。
析构函数
定义:(生可带来,死不带去)
1.构函数名与类名相同,但在前面加上字符~,如: ~CGoods (){}
2.析构函数无函数返回类型,与构造函数在这方面是一样的。但析构函数不带任何参数。
3.一个类有一个也只有一个析构函数, 这与构造函数不同。
4.对象注销时,系统自动调用析构函数。
5.如果类说明中没有给出析构函数,则C++编译器自动给出一个缺省的析构函数。
对象可以自己调用析构函数
不要把析构函数设置成私有的,因为会无法析构对象
对象不可以自己调动构造函数