zoukankan      html  css  js  c++  java
  • 初话C++模板【用自己的话,解释清楚这些】

     

    用自己的话解释清楚C++的模板编程

    模板编程是为了解决什么问题而出现的?

    提高代码的重用性,提高代码的利用率。

    泛型编程的一种实现。

    模板的精神是: 

    类型参数化。

    模板的实现

    模板分为:函数模板、类模板

     

    函数模板

     

    定义函数模板的一般形式为:
    template < typename T>
    通用函数定义 通用函数定义

    template <class T>
    通用函数定义 通用函数定义

     

    对于多个类型可采用如下:template <class T1, typename T2>

     

    参考使用代码如下:

      1 #include <iostream>

      2 

      3 using namespace std;

      4 template <typename T>    //模板声明,其中T为类型参数

      5 inline T max(T a,T b,T c) //定义一个通用函数,用T作虚拟的类型名

      6 {

      7         if(b>a) a=b;

      8         if(c>a) a=c;

      9         return a;

     10 }

     11 

     12 

     13 int main()

     14 {

     15         int i1=18,i2=19,i3=20;

     16         int  i;

     17 

     18         double d1=1.23,d2=2.34,d3=3.56;

     19         double d;

     20 

     21 

     22         i=max(i1,i2,i3);

     23         d=max(d1,d2,d3);

     24         cout<<"i_max="<<i<<endl;

     25         cout<<"d_max="<<d<<endl;

     26         return  0;

     27 }

     28 

    类模板

    类模板的定义也与函数模板类似:

    参考代码如下:

      1 #include <iostream>

      2 

      3 using namespace std;

      4 template <typename T>

      5 

      6 class Compare

      7 {

      8         public:

      9         Compare(T a,T b)

     10         {

     11                 x=a;

     12                 y=b;

     13         }

     14         T max()

     15         {

     16                 return (x>y)?x:y;

     17         }

     18 

     19 private:

     20         T x,y;

     21 };

     22 

     23 

     24 

     25 int main()

     26 {

     27         Compare<int> c(3,7);

     28 

     29 

     30         cout<<c.max()<<" is the max of two num"<<endl;

     31         return  0;

     32 }

     33

    参考工程下载,http://pan.baidu.com/s/1mgKBUoK

    http://pan.baidu.com/s/1pJO96Q3 

    http://pan.baidu.com/s/1kT0vioJ

    QQ群 计算机科学与艺术  272583193

    加群链接:http://jq.qq.com/?_wv=1027&k=Q9OxMv

  • 相关阅读:
    codebak
    (转)关于APACHE和php
    c#pda(wince)摄像头拍照程序
    C#语言实现WINCE全屏幕显示
    (转).NET反编译工具Reflector及插件
    (转)解决WebService第一次访问速度慢的问题
    (转)C#.net winform skin 皮肤大全
    python模块整理19pyMongo
    python模块整理26数据持久性pickle、shelve、SQLite
    python模块整理21multiprocessing
  • 原文地址:https://www.cnblogs.com/fly-fish/p/3843282.html
Copyright © 2011-2022 走看看