美文网首页
C++异常 模板类

C++异常 模板类

作者: 闪客飞飞 | 来源:发表于2021-03-18 21:17 被阅读0次

    //异常: 异常处理,根据抛出的异常数据类型,进入到相应的catch代码块中
    //void main(){
    // try{
    // int a = 300;
    // if (a > 200){
    // throw 9.8;
    // }
    // }
    // catch (int a){
    // cout << "int 异常" << a << endl;
    // }
    // catch (char* b){
    // cout << "char 异常" << b << endl;
    // }
    // catch (...){
    // cout << "未知异常" << endl;
    // }
    // system("pause");
    //}

    //throw 抛出函数外
    //void mydiv(int a, int b){
    // if (b == 0){
    // throw "除数为0";
    // }
    //}
    //void main(){
    // try{
    // mydiv(12, 0);
    // }
    // catch (char* c){
    // cout << "异常:" << c << endl;
    // }
    //
    // system("pause");
    //}

    //抛出异常对象 异常类
    //class myException{
    //public:
    // myException(){
    // }
    //};
    //void mydiv(int a, int b){
    // if (b == 0){
    // //throw myException();
    // //throw new myException; 异常指针 需要delete
    // throw myException();
    // }
    //}
    //void main(){
    // try{
    // mydiv(4, 0);
    // }
    // /catch (myException w){
    // cout << "myException:" << endl;
    // }
    /
    // catch (myException &w){
    // cout << "myException 引用:" << endl;
    // }
    // catch (myException* ww){
    // cout << "myException 指针:" << endl;
    // delete(ww);
    // }
    // system("pause");
    //}

    ////自定义异常
    //class myException :public exception{
    //public:
    // myException(char * msg) :exception(msg){
    //
    // }
    //};
    ////标准异常
    //void mydiv(int a, int b){
    // if (b > 10){
    // throw out_of_range("超出范围");
    // }
    // else if(b==2){
    // throw invalid_argument("参数不合法");
    // }
    // else if (b==NULL)
    // {
    // throw myException("为空");
    // }
    //}
    //void main(){
    // try{
    // mydiv(3, NULL);
    // }
    // catch (out_of_range o){
    // cout << o.what() << endl;
    // }
    // catch (invalid_argument o){
    // cout << o.what() << endl;
    // }
    // catch (myException &o){
    // cout << o.what() << endl;
    // }
    // system("pause");
    //}

    //外部类的方式
    //class Err{
    //public:
    // class Myexception{
    // public:Myexception(){
    // }
    // };
    //};
    //void mydiv(int a, int b){
    // if (b == 0){
    // throw Err::Myexception();
    // }
    //}

    //模板类
    template <class T>
    class A {
    public:
    A(T a){
    this->a = a;
    }
    protected:
    T a;
    };
    //普通类继承模板类
    class B:public A<int>{
    public:
    B(int a, int b) :A<int>(a){
    this->b = b;
    }
    private:
    int b;
    };
    //模板类继承模板类
    template <class T>
    class C :public A<T>{
    public:
    C(T c,T a) :A<T>(a){
    this->c = c;
    }
    protected:
    T c;
    };
    void main(){
    //实例化模板类对象
    A<int>(6);
    B(2, 4);
    C<int>(2, 4);
    system("pause");
    }

    相关文章

      网友评论

          本文标题:C++异常 模板类

          本文链接:https://www.haomeiwen.com/subject/hlmpcltx.html