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

    为什么需要类模板?

    类模板与函数模板的定义和使用类似,我已经进行了介绍。 有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:

    作用:

    1.类模板用于实现类所需数据的类型参数化

    2.类模板在表示如数组、表、图等数据结构显得特别重要,这些数据结构的表示和算法不受所包含的元素类型的影响

    一、单个类模板语法

    //类的类型参数化 抽象的类
    //单个类模板
    template<typename T>
    class A 
    {
    public:
    	A(T t)
    	{
    		this->t = t;
    	}
    
    	T &getT()
    	{
    		return t;
    	}
    protected:
    public:
    	T t;
    };
    void main()
    {
       //模板了中如果使用了构造函数,则遵守以前的类的构造函数的调用规则
    	A<int>  a(100); 
    	a.getT();
    	printAA(a);
    	return ;
    }
    

      

    二、继承中的类模板语法

    结论: 子类从模板类继承的时候,需要让编译器知道 父类的数据类型具体是什么(数据类型的本质:固定大小内存块的别名) A<int> 。

    class B : public A<int>
    {
    public:
    	B(int i) : A<int>(i)
    	{
    
    	}
    	void printB()
    	{
    		cout<<"A:"<<t<<endl;
    	}
    protected:
    private:
    };
    
    //模板与上继承
    //怎么样从基类继承  
    //若基类只有一个带参数的构造函数,子类是如何启动父类的构造函数
    void pintBB(B &b)
    {
    	b.printB();
    }
    void printAA(A<int> &a)  //类模板做函数参数 
    {
    	 //
    	a.getT();
    }
    
    void main()
    {
    	A<int>  a(100); //模板了中如果使用了构造函数,则遵守以前的类的构造函数的调用规则 
    	a.getT();
    	printAA(a);
    
    	B b(10);
    	b.printB();
    
    
    	cout<<"hello..."<<endl;
    	system("pause");
    	return ;
    }
    

      

  • 相关阅读:
    HTML5 <input> multiple 属性
    AWS
    new Set() 数组去重
    IAM
    Amazon S3
    Promis 实例
    JS
    React 5
    React 4
    React 3
  • 原文地址:https://www.cnblogs.com/gd-luojialin/p/9750216.html
Copyright © 2011-2022 走看看