GeekBand-C++STL与泛型编程-Week2

泛化(模板)

功能:使类或者函数可以应对于多种类型的情况。

例子:

template
class Container {
    T data[N];
};
Container a;
Container b;

这样Container这个类就可以灵活存储各种类型的元素。

template
const T& max(const T& a, const T& b) {
    return a < b ? b : a;
}
max(1, 2);
max(1.0, 2.0);

这样max函数就可以灵活应对于不同的类型。

模板的特化

模板的特化指的是对模板参数的某些特别情况进行特殊实现,在模板匹配类型时,如果发现有合适的特化的模板,会优先使用特化的模板

偏特化

偏特化即特化部分模板参数,如:

template
class A {
    // ...
};

// 偏特化: 
template
class A {
    // ...
};

全特化

全特化即特化所有模板参数

template<>
class A {
    // ...
};

你可能感兴趣的:(GeekBand-C++STL与泛型编程-Week2)