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

    类模板使用实例

    #include <iostream>
    using namespace std;
    
    template<typename T>
    class A
    {
    public:
        A(T t):a(t){}
        T getA()
        {
            return a;
        }
    private:
        T a;
    };
    
    int main()
    {
        A<int> a1(100);    //在定义⼀个对象的时候,要明确此类所泛化的具体类型
        cout<<a1.getA()<<endl;
        A<char> a2('a');
        cout<<a2.getA()<<endl;
    
        return 0;
    }
    View Code

    模板类的派生

    #include <iostream>
    using namespace std;
    
    template<typename T>
    class A
    {
    public:
        A(T t):a(t){}
        void printA()
        {
            cout<<"a: "<<a<<endl;;
        }
    private:
        T a;
    };
    
    //模板类派生普通类,子类从模板类继承的时候,需要让编译器知道父类的数据类型具体是什么(数据类型的本质:固定大小内存快的别名)    
    class B: public A<int>
    {
    public:
        B(int t1, int t2):A(t1), b(t2){}
        void printB()
        {
            A::printA();
            cout<<"b: "<<b<<endl;
        }
    private:
        int b;
    };
    
    //模板类派生模板类
    template<typename T>
    class C: public A<T>
    {
    public:
        C(T t1, T t2):A(t1),c(t2){}
        void printC()
        {
            A::printA();
            cout<<"c: "<<c<<endl;
        }
    private:
        T c;
    };
    
    int main()
    {
        B b(1, 2);
        b.printB();
    
        C<int> c(3, 4);
        c.printC();
    
        return 0;
    }
    View Code
  • 相关阅读:
    NSArray使用须知
    iOS设备闪光灯控制
    NSArray是强引用容器
    预处理指令#pragram
    iOS添加弹出菜单
    docker 进入容器的方式
    ThinkPHP链接 PgSQL
    Nginx 配置https证书
    Aliyun 域名解析配置七牛云 CNAME 解析
    git + github多人协作开发
  • 原文地址:https://www.cnblogs.com/xumaomao/p/12969343.html
Copyright © 2011-2022 走看看