目录
1.初始化列表
1.之前书写构造函数时,初始化成员在函数体内完成赋值构造。初始化列表可以在函数体外完成赋值构造
2.对于const修饰,引用类型修饰和没有默认构造的类类型必须走初始化列表
3.在初始化列表中也支持缺省值这个缺省值主要是给没有显⽰在初始化列表初始化的 成员使⽤的。
4.尽管在构造函数中有时可以不写初始化列表,但任何构造函数都会找有无初始化列表,若没有初始化列表,才会在函数函数体内赋值
5.成员函数初始化其中初始化列表,构造函数和缺省值的关系如下
6.初始化列表第一行开头应由:开头,其余每行由,开头
7.初始化列表根据声明的顺序进行初始化
2.类型转换
1.C++支持隐式的内省转换,可以将内置类型通过构造函数转化为类类型
2.构造函数前⾯加explicit就不再⽀持隐式类型转换。
3.类类型的对象之间也可以隐式转换,需要相的构造函数⽀持。
3.static成员变量
1.用static修饰的成员变量,若是类类类型则必须在类外定义,若为内置类型,则可以在类中定义
2.静态成员变量为所有类对象所共享,不属于某个具体的对象,不存在对象中,存放在静态区。
3.⽤static修饰的成员函数,称之为静态成员函数,静态成员函数没有this指针。
4.静态成员函数中可以访问其他的静态成员,但是不能访问非静态的,因为没有this指针。
5.静态成员也是类的成员,受public、protected、private访问限定符的限制。
4.内部类
1.如果⼀个类定义在另⼀个类的内部,这个内部类就叫做内部类。内部类是⼀个独立的类,跟定义在 全局相比,他只是受外部类类域限制和访问限定符限制,所以外部类定义的对象中不包含内部类。
2.内部类默认是外部类的友元类。
3.内部类的成员变量的大小不计入类的大小计算中