zoukankan      html  css  js  c++  java
  • 类模板的简单使用

    1.类模板的定义

    2.类模板的使用

    3.类模板做函数参数

    4.类模板派生普通类

    5.类模板派生类模板

    #include "pch.h"
    #include <iostream>
    using namespace std;
    
    template <typename T>//告诉编译器开始泛型编程
    class A
    {
    public:
        A(T t)
        {
            a = t;
        }
        void printA()
        {
            cout << "a:" << a << endl;
        }
    protected:
        T a;
    };
    
    //模板类派生普通类
    //public A<int>模板类派生时,需要具体化,编译器要知道具体类型,父类所占内存是多少,只有数据类型定下来,才能分配内存
    class B :public A<int>
    {
    public:
        B(int a, int b):A<int>(a)
        {
            this->b = b;
        }
        void printB()
        {
            cout << "b:" << b << endl;
        }
    protected:
        int b;
    
    };
    
    //从模板类 派生 模板类
    template <typename T>
    class C :public A<T>
    {
    public:
        C(T c, T a):A<T>(a)
        {
            this->c = c;
        }
        void printC()
        {
            cout << "c:" << c << endl;
        }
    protected:
        T c;
    };
    //模板类做函数参数
    void useA(A<int> &a)
    {
        cout << "func" << endl;
        a.printA();
    }
    //模板类的定义
    //模板类的使用
    int main()
    {
        A<int> a1(1);//模板类是类型化,是抽象的,需要类型具体化
        a1.printA();
    
        B b1(2, 3);
        b1.printB();
        b1.printA();
    
        C<int> c1(4, 5);
        c1.printA();
        c1.printC();
        cout << "Hello World!
    "; 
    }
  • 相关阅读:
    【python】requests库
    pycharm新建项目时选择virtualenv的说明
    cookie、session、token
    读写锁--DEMO
    锁降级--防止线程安全问题
    mysql-left join
    index-document-shard
    ES-常见搜索方式
    SpringBoot在自定义类中调用service层等Spring其他层
    mongodb crud
  • 原文地址:https://www.cnblogs.com/jly594761082/p/10569366.html
Copyright © 2011-2022 走看看