C++9

C++9

1类型转换
1.1静态转换 static_cast
1.2使用方式 static_cast< 目标类型>(原始数据)
1.3可以进行基础数据类型转换
1.4父与子类型转换
1.5没有父子关系的自定义类型不可以转换
1.6动态转换 dynamic_cast
1.7不可以转换基础数据类型
1.8父子之间可以转换
1.8.1父转子 不可以
1.8.2子转父 可以
1.8.3发生多态 都可以
1.9常量转换 const_cast
1.10不能对非指针或者非引用进行转换
1.11重新解释转换 reinterpret_cast
1.11.1最不安全,最鸡肋 不推荐
2异常
2.1try 试图执行 try{}中的内容
2.2在可能出现异常的地方 抛出异常 throw
2.3try下面 catch捕获异常
2.4catch( 捕获类型 ) …代表 所有其他类型
2.5如果不想处理异常,继续向上抛出 throw
2.6如果没有任何处理异常的地方,那么成员调用terminate函数,中断程序
2.7自定义异常类 ,可以抛出自定义的对象 ,捕获自定义的异常
3栈解旋
3.1从try开始 到 throw 抛出异常之前 所有栈上的对象 都会被释放 这个过程称为栈解旋
3.2栈上对象构造顺序与析构顺序相反
4异常的接口声明
4.1如果想抛出特定的类型异常 ,可以利用异常的接口声明
4.2void func() throw ( int) 只能抛出 int类型
4.3throw() 不抛出任何类型异常
5异常变量生命周期
5.1如果 MyException e,会多开销一份数据 ,调用拷贝构造
5.2如果 MyExcepiton e , 不 new提前释放对象 new 自己管理delete
5.3推荐 MyException &e 容易些 而且 就一份数据
6异常的多态使用
6.1利用多态来实现 printError同一个接口调用
6.2抛出不同的错误对象,提示不同错误
7使用系统标准异常
7.1#incldue
7.2throw out_of_range(”aaa”) 。。。
7.3catch(out_of_range & e) cout << e.what();
8编写自己的异常类
8.1自己的异常类 需要继承于 exception
8.2重写 虚析构 what()
8.3内部维护以错误信息 字符串
8.4构造时候传入 错误信息字符串,what返回这个字符串
8.5string 转 char * .c_str();
9标准的输入流
9.1cin.get 缓冲区中读取一个字符
9.2cin.get(两个参数) 不读换行符
9.3cin.getline () 读取换行 并且扔掉
9.4cin.ignore 忽略 (N) N代表忽略字符数
9.5cin.peek 偷窥 偷看1个字符然后放回去
9.6cin.putback 放回 把字符放回缓冲区
10输入流案例
10.1判断用户输入的是字符串还是数字 利用偷窥 或者 放回
10.2让用户输入指定范围内的数字,如果不正确 重新输入
10.2.1cin.fail() 看标志位 0正常 1不正常
10.2.2cin.clear()重置标志位
10.2.3cin.syne() 清空缓冲区
11标准输出流
11.1流对象的成员函数
11.1.1int number = 99;
11.1.2cout.width(20);
11.1.3cout.fill(’
’);
11.1.4cout.setf(ios::left); //设置格式 输入内容做对齐
11.1.5cout.unsetf(ios::dec); //卸载十进制
11.1.6cout.setf(ios::hex); //安装16进制
11.1.7cout.setf(ios::showbase); // 强制输出整数基数 0 0x
11.1.8cout.unsetf(ios::hex);
11.1.9cout.setf(ios::oct);
11.1.10cout << number << endl;
11.2控制符
int number = 99;
cout << setw(20)
<< setfill(’~’)
<< setiosflags(ios::showbase) //基数
<< setiosflags(ios::left) //左对齐
<< hex // 十六进制
<< number
<< endl;
12文件操作
12.1写文件
12.1.1ofstream ofs
12.1.2open 指定打开方式
12.1.3isopen 判断是否打开成功
12.1.4ofs << “数据”
12.1.5ofs.close
12.2读操作
12.2.1ifstream ifs
12.2.2指定打开方式 ios::in
12.2.3isopen判断是否打开成功
12.2.4 三种方式读取数据
13

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页