41.C++中的构造函数:
(1)C++中的类可以定义与类名相同的特殊成员函数。
(2)这种与类名相同的成员函数叫做构造函数。
(3)构造函数在定义时可以有参数,但是没有任何返回类型的声明。
(4)一般情况下C++编译器会自动调用构造函数,一些情况下则需要手动调用构造函数。
42.类的成员函数和普通函数一样可以进行重载,并遵循相同的重载规则。
43.当类中没有定义任何一个构造函数时,C++编译器会为提供无参构造函数和拷贝构造函数;当类中定义了任意的非拷贝构造函数时,C++编译器不会提供无参构造函数。
44.两个特殊的构造函数:
(1)无参构造函数:当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空。
(2)拷贝构造函数:当类中没有定义拷贝构造函数时,编译器默认提供一个拷贝构造函数,简单的进行成员变量的值的复制。
45.C++中提供初始化列表对成员变量进行初始化:
(1)成员变量初始化顺序与声明顺序相关,与在初始化列表顺序无关。
(2)初始化列表先于构造函数的函数体执行。
46.类中的const成员时肯定会被分配空间的,类中的const成员变量只是一个只读变量,编译器无法直接得到const成员变量的初始值,因此无法进入符号表成为真正意义的常量。
47.初始化与赋值的不同:
(1)初始化是用已存在的对象或值对正在创建的对象进行初值设置。
(2)复制是用已存在的对象或值对已经存在的对象进行值设置。
48.C++中的类可以定义一个特殊的成员函数清理对象,这个特殊的成员函数叫做析构函数。定义:~Class Name( )。析构函数没有参数也没有任何返回类型的声明,析构函数在对象销毁时自动被调用。
49.构造函数与析构函数的调用秩序:当类中成员变量是其他类的对象时,首先调用成员变量构造函数,调用顺序与声明顺序相同,之后调用自身类的构造函数,析构函数调用秩序与对应构造函数调用秩序相反。
50.在C++中可以定义静态成员变量和静态成员函数,静态成员属于整个类共有,不需要依赖任何对象。可以通过类名直接访问public静态成员,可以通过对象名访问public静态成员,静态成员函数可以直接访问静态成员变量。