zoukankan      html  css  js  c++  java
  • C++函数模板和类模板

    所谓函数化多态性,就是将程序所处理的对象的类型参数化,使得一段程序可以用于处理多种不同类型的对象。

    1.函数模板

    template<class T>//定义函数模板
    void outputArray(const T* array,int cout){
        for(int i=0;i<cout;i++)
            cout<<array[i]<<" ";
        cout<<endl;
    }

    2.类模板

      使用类模板是用户可以为类定义一种模式,使得类中的默写数据成员、某些成员函数的参数、返回值或局部变量能取任意类型(包括系统定义的和用户自定义的)。

    #include<iostream>
    #include<cstdlib>
    using namespace std;
    
    struct Student{  //结构体
        int id;
        float gpa;
    };
    
    template<class T>   //类模板:实现对任意类型数据进行存取
    class Store{
        private:
            T item;
            boll haveValue;
        public:
            store():
            T &getElem();
            void putElem(const T &x);  
        
    };
    
    //以下实现各成员函数
    template<class T>
    Store<T>::store():haveValue(false){}
    
    template<class T>
    T &Store<T>:getElem(){
        if(!haveValue){
            cout<<"NO item present!"<<endl;
            exit(1);//使程序完全退出,返回到操作系统
        }
        return item;
    }
    
    template<class T>
    void Store<T>::putElem(const T &x){
        haveValue=true;
        item=x;
    }
  • 相关阅读:
    281. Zigzag Iterator
    298. Binary Tree Longest Consecutive Sequence
    482. License Key Formatting
    361. Bomb Enemy
    373. Find K Pairs with Smallest Sums
    304. Range Sum Query 2D
    308. Range Sum Query 2D
    307. Range Sum Query
    303. Range Sum Query
    247. Segment Tree Query II
  • 原文地址:https://www.cnblogs.com/biwangwang/p/11349443.html
Copyright © 2011-2022 走看看