模板和异常

来源:互联网 发布:通过mac地址定位手机 编辑:程序博客网 时间:2024/06/04 12:50

函数模板

//函数模板 template <class T>T mymax(T a, T b){    T m;    m = a>b?a:b;    cout<<"max is :"<<m<<endl;}int main(){    int x=1, y=2;    double a=1.1, b=2.2;    mymax(x,y);    mymax(a,b);    mymax<int>(a,b);//显示实例化     return 0;}

类模板

template <class T, int size>class Stack{    T buffer[size];    int top;    public:        Srack(){top = -1;}        bool push(const T &x);        bool pop(T &x);};//外部定义函数 template <class T, int size> bool Stack <T, size>::push(const T &x){......}//类模板的实例化需要在程序中显示指出Stack<int, 100> s1;Stack<double, 200> s2; //同类模板之间才共享静态成员template <class T>class A{    static int x;    T y;    .....};A<int> i1, i2;//i1, i2共享xA<double> a1, a2;//a1, a2共享另一个x 

C++异常处理

int yichang(int y){    if(y == 0) throw 0;    if(y == 1) throw 1.1;    return y;} void f(){    int x;    try    {           cin>>x;        yichang(x);    }    //catch只关心throw的类型     catch(int)    {        cout<<"y==0";    }    catch(double)    {        cout<<"y==1.1";    }}int main(){    f();    return 0;}