初识C++函数模板和类模板

1、函数模板

  #include<iostream>
  using namespace std;

  //函数模板(“template”关键字与函数模板定义之间不可有任何间隔!)
  template<class T>
  T myMaxA(T a, T b)
  {
      if (a >= b)
      {
          return a;
      }
      else
      {
          return b;
      }
  }

  template<class typeA, class typeB>
  typeA myMaxB(typeA a, typeB b)
  {
      if (a >= b)
      {
          return a;
      }
      else
      {
          return (typeA)b;
      }
  }

  int main(int argc, char* argv[])
  {
      cout << myMaxA<double>(1.0, 2.01) << endl;
      cout << myMaxB<int, double>(3, 2.0) << endl;
  }

  /*
  输出结果:
  2.01
  3
  */

2、类模板

  //类模板(可以有单个或多个模板类型)
  template<class typeA, class typeB>
  class Compare
  {
  private:
      typeA x;
      typeB y;
  public:
    
      inline void setValue(typeA myX, typeB myY)
      {
          this->x = myX;
          this->y = myY;
      }
      inline typeA min()
      {
          if (x >= y)
          {
              return x;
          }
          else
          {
              return (typeA)y;
          }
      }
  };

  int main(int argc, char* argv[])
  {
      Compare<int, double> myCompare;
      myCompare.setValue(102, 341.5);
      cout<<myCompare.min()<<endl;
  }
 /*
  输出结果:
  341
  */
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容