初始化列表的效果总是慢于就地初始化, 但也快过在构造函数中进行赋值
注意: 非常量的静态变量依然要在头文件外定义从而保证在程序中只存在一个
sizeof()可以对类成员表达式使用了
类模板也可以声明友元了...)的访问, 从而在外部可以自动调用基类构造
C++11中继承构造函数和其他默认函数一样, 存在隐式声明的默认版本, 且如果不被使用就不会生成
继承构造函数的默认参数不会被继承, 反而会生成多个不同声明的构造函数的产生..., 所以当发生冲突的时候应该显式声明构造函数来因此冲突的函数
当派生类是虚继承了基类时, 不能使用继承构造函数
一旦使用了继承构造函数(用using Base::Base;)暴露出来, 自身的默认构造函数就和之前的隐藏规则一样...不但可以调用基类的构造函数, 也可以调用当前类的其他构造函数, 这样就能进一步减少重复代码
但要注意委派构造不能和普通的初始化列表共用, 因为目标构造(初始化列表)总是先于委派构造被调用, 这会导致目标构造的参数无效..., 例如当存在非POD成员且这个成员有非平凡的构造函数时, 这个union的默认构造将被删除
匿名的union对外是开放的, 因此放在类的声明中可以按照构造函数的不同而初始化为不同的类型, 此时类被称为枚举式的类