模板和异常

函数模板

//函数模板 
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共享x
A<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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值