学习总结: C++ 模板 (thinking in C++)

来源:互联网 发布:cfcmd透视源码 编辑:程序博客网 时间:2024/05/20 04:28

        今天开始把学习C++的点点滴滴记下来。昨天看了一下模板,总结一下。

 

        C++的模板提供了源代码重用的一种机制,不同于继承和组合(重用对象代码)。模板出现与容器有一定的渊源。为了是容器能够存储多种类型的成员, C++引入了模板,模板实现了参数化类型(parameterized type)的概念。模板的方法的例外一个优点是:是对继承还不熟悉的程序员也能正确的使用密封的容器类。

 

      1、 模板的语法 ;

       模板类

        template <class T, [....]> //template<typename T, [...]>

       class A{

        int a();       

         }

        int A<T>::a()

        {

        }

      模板函数:

     template <class T>
     T max(T a, T b)
    {
        return a > b ? a : b;
     }

 

2、模板类的定义和声明通常都放在头文件中。

    这好像违背了“不要在头文件中放置分配存储空间的任何东西”。但是模板定义比较特殊, 因为在template<...>之后的任何东西都以为着编译器在当时不为它分配存储空间。直到出现模板实例。

 

3、模板中的常量

  template<class T, int size = 100>

用处是使用编译器的内置类型,可以对这些类型常量提供默认值。

 

4、还没写完....