zoukankan      html  css  js  c++  java
  • 类模板

    1.类模板的定义和使用

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 //类模板
     6 template <typename T>
     7 class Teacher
     8 {
     9 public:
    10     Teacher(T a):Age(a){}
    11     void printT(){cout<<Age<<endl;}
    12 private:
    13     T Age;
    14 };
    15 
    16 
    17 int main()
    18 {
    19     //模板类(本身就是类型化的)===>需要指明具体的类===>定义具体的变量
    20     Teacher<int> Zhang(25);
    21     Zhang.printT();
    22 
    23 
    24     return 0;
    25 }

    2.类模板做函数参数

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 //类模板
     6 template <typename T>
     7 class Teacher
     8 {
     9 public:
    10     Teacher(T a):Age(a){}
    11     void printT(){cout<<Age<<endl;}
    12 private:
    13     T Age;
    14 };
    15 
    16 //类模板做函数参数
    17 void fun(Teacher<int>& t)
    18 {
    19     t.printT();
    20 }
    21 
    22 int main()
    23 {
    24     //模板类(本身就是类型化的)===>需要指明具体的类===>定义具体的变量
    25     Teacher<int> Zhang(25);
    26     
    27     fun(Zhang);
    28 
    29     return 0;
    30 }

    3.从模板类派生出一个普通类

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 //类模板
     6 template <typename T>
     7 class Teacher
     8 {
     9 public:
    10     Teacher(T a):Age(a){}
    11     void printT(){cout<<Age<<endl;}
    12 private:
    13     T Age;
    14 };
    15 
    16 //模板类派生出一个子类。如果说类的对象的抽象,则模板类是类的抽象,在继承时,需要把模板类具体化(指定模板类的类型)
    17 class Student:public Teacher<int>
    18 {
    19 public:
    20     Student(int a,int s):Teacher(a),Score(s){}
    21     void PrintS(){printT();cout<<Score<<endl;}
    22 
    23 private:
    24     int Score;
    25 };
    26 
    27 int main()
    28 {
    29     //模板类(本身就是类型化的)===>需要指明具体的类===>定义具体的变量
    30     Student Li(98,45);
    31     Li.PrintS();
    32     
    33     return 0;
    34 }

    4.从模板类派生出一个模板子类

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 //类模板
     6 template <typename T>
     7 class Teacher
     8 {
     9 public:
    10     Teacher(T a):Age(a){}
    11     void printT(){cout<<Age<<endl;}
    12 private:
    13     T Age;
    14 };
    15 
    16 //模板类派生出一个模板子类。如果说类的对象的抽象,则模板类是类的抽象,在继承时,需要把模板类具体化(指定模板类的类型)
    17 template <typename T1,typename T2>
    18 class Student:public Teacher<T1>
    19 {
    20 public:
    21     Student(T1 a,T2 s):Teacher(a),Score(s){}
    22     void PrintS(){printT();cout<<Score<<endl;}
    23 
    24 private:
    25     T2 Score;
    26 };
    27 
    28 int main()
    29 {
    30     //模板类(本身就是类型化的)===>需要指明具体的类===>定义具体的变量
    31     Student<int,float> Li(45,98.5);
    32     Li.PrintS();
    33     
    34     return 0;
    35 }
  • 相关阅读:
    一、CentOS 7安装部署GitLab服务器

    四、指定Nginx启动用户
    三、Nginx支持php
    二、Nginx多站点配置(参考宝塔的)分析
    一、Nginx多站点配置
    一、PHP和Apache实现多用户自助建站
    Flask+uwsgi+Nginx+Ubuntu部署
    flask 上传头像
    flask 分页
  • 原文地址:https://www.cnblogs.com/jswu-ustc/p/8512593.html
Copyright © 2011-2022 走看看