首页 > 代码库 > 【C/C++学院】0831-类与对象的异常/面试100题1-100
【C/C++学院】0831-类与对象的异常/面试100题1-100
类与对象的异常
Cpp异常
#include <iostream> #include <string.h> using namespace std; //标识错误的类型 class wrong { }; int intdiv(int a, int b) { try { if (b==0) { throw 10;//能够是不论什么对象 wrong(); } int c = a / b; return c; } catch (int data )//类型名 { cout << "除法异常已经处理"; return -1; } } int intdivA(int a, int b) { return a / b; } void main() { int x, y; cin >> x >> y; try { if (y==0) { throw "被除数为0"; } else if (x==0) { throw "除数为0"; } } catch (const char * s) { if (strcmp(s,"被除数为0")==0) { cout << "被除数为0异常,请又一次输入"; cin >> x >> y; } else if (strcmp(s, "除数为0") == 0) { cout << "除数为0异常,请又一次输入"; cin >> x >> y; } } std::cout << intdiv(x, y); cin.get(); cin.get(); cin.get(); }
类的异常
#include<iostream> using namespace std; class wrong { }; class wrongA { }; class Array { public: Array(int num) { n = num; if (num<=0) { throw wrong(); } p = new int[num];//正确代码在throw之后。不会被运行。 for (int i = 0; i < num;i++) { p[i] = 0; } } int & operator[](int num) { if (num < 0 || num>= n) { throw wrongA(); } return p[num]; } protected: private: int *p; int n; }; void main() { try { Array myarrar(2); myarrar[-1]; } catch (wrongA e) { cout << "下标越界"; } catch (wrong e) { cout << "程序发生异常,数组大小必须大于等于1"; } cin.get(); } void mainA() { int a[3] = { 1, 2, 3 }; // printf("%d", 2[a]);//*(2+a) // printf("%d", a[9886655]); getchar(); }
#include<iostream> #include <string> using namespace std; class box //正方体 { public: box(int data) { cout << "開始构造"; if (data =http://www.mamicode.com/=0)>面试100题1-100
单独整理成文档
【C/C++学院】0831-类与对象的异常/面试100题1-100
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。