C++ primer笔记4

1、泛型编程是以独立于任何特定类型的编程方式编写代码。模板是泛型编程的基础。

2、模板定义以关键字template开始,后接模板形参表,模板形参表是用尖括号括住的一个或多个模板形参的列表,形参之间以逗号分隔。template

3、模板形参作用域:模板形参的名字在声明为形参模板后直到模板声明或定义的末尾处使用。

4、使用模板形参的名字的一直:用作模板形参的名字不能在模板内部重用。

5、编写泛型代码的两个原则:

①模板的形参是const引用

②函数体中的测试只用<比较

6、一般而言,编译模板阶段,编译器可能会在三个阶段中标识错误:

第一阶段是编译模板定义本身时。第二个错误检测时间实在编译器见到模板的使用时。产生错误的第三个阶段是在实例化的时候。

7、实例化:产生模板的特定类型实例ide过程称为实例化。类模板的每次实例化都会产生一个独立的类类型。想使用类模板,就必须显示指定模板实参。

8、模板实参推断:从实参确定模板实参的类型和值的过程叫做模板实参推断。获取函数模板实例化的地址的时候,上下文必须是这样的:它允许为每个模板形参确定唯一的类型或值。

9、类模板的static成员:类模板可以像其他类一样声明static成员。

template class Foo{
public:
    static std::size_t count() { return ctr; }
private:
    static std::size_t ctr;
};

 

你可能感兴趣的:(C++Primer)