template函数和template类

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/amaowolf/article/details/7342849
#include<iostream>
using namespace std;

template <typename Type> 
class Poly{
private:
        Type base;
        Type height;
public:
        Poly(Type b = 0, Type h = 0):base(b),height(h){}

        Type getArea()const{
                return base * height;
        }

        template <typename T> inline int compare(const T &t1, const T &t2){
                if(t1 < t2) return -1;
                if(t1 > t2) return 1;
                return 0;
        }
};

int main(){
        int b1 = 2, h1 = 3;
        Poly<int> p1(b1, h1);
        cout<<p1.getArea()<<endl;
        int result = p1.compare(b1, h1);
        if(result == 1) cout<<b1<<" >  "<<h1<<endl;
        else if(result == -1) cout<<b1<<" < "<<h1<<endl;
        else cout<<b1<<" == "<<h1<<endl;

        double b2 = 3.3, h2 = 2.2;
        Poly<double> p2(b2, h2);
        cout<<p2.getArea()<<endl;
        result = p2.compare(b2, h2);
        if(result == 1) cout<<b2<<" >  "<<h2<<endl;
        else if(result == -1) cout<<b2<<" < "<<h2<<endl;
        else cout<<b2<<" == "<<h2<<endl;
        return 0;
}


展开阅读全文

没有更多推荐了,返回首页