初始化列表的效果总是慢于就地初始化, 但也快过在构造函数中进行赋值
注意: 非常量的静态变量依然要在头文件外定义从而保证在程序中只存在一个
sizeof()可以对类成员表达式使用了
类模板也可以声明友元了...原因和extern变量一样, 普通的模板只存在于对应文件的.o中, 如果一个模板文件被多个文件实例化就会产生多份重复代码, 没有extern的话此时重复的模板会冲突....有了extern后编译器会自动删除重复的实例化模板, 不但节省内存还节省了多余的实例化时间
注意被其他文件调用的外部模板一定要在要用到的类实例化之前实例化
局部和匿名成员可以作为模板实参了, 但仍要注意匿名类型的声明不能在参数位置...其他构造函数通过带有默认值的委派构造来调用这个目标构造函数
千万小心环形委派, 会导致编译错误
委派构造函数使得构造函数的模板编程也成为一种可能, 通过让模板构造函数成为委派构造函数, 我们可以很容易地接受多种不同类型的参数进行相同的底层初始化...函数模板是根据我们的实参类型在调用时进行特化并实例化的, 具体来说匹配遵循以下步骤:
首先对于一次调用, 编译器查找所有具有此名称的函数和实例化的模板函数表
在这些函数中进行比较, 将不可行的函数剔除,