catch必定使用拷贝构造函数

如下代码编译不通过,因为拷贝构造被标记delete

#include <stdexcept>
#include <cstdlib>
#include <iostream> using namespace std; class sonExc : public exception {
public:
sonExc ( const char* const msg ) : exception ( msg ) { }
sonExc ( const sonExc & e ) = delete;
}; int main()
{
try {
sonExc e { "Hello" };
throw e;
}
catch ( sonExc &e ) {
cout << "sonExc:" << e.what() << endl;
}
catch ( exception &e ) {
cout << "exception:" << e.what() << endl;
} system ( "pause" );
}

throw 指针

依照优先匹配原则

可以匹配 基类指针、本类指针和void*,哪个在前面优先哪个

#include <stdexcept>
#include <cstdlib>
#include <iostream> using namespace std; class sonExc : public exception {
public:
sonExc ( const char* const msg ) : exception ( msg ) { }
sonExc ( const sonExc & e ) = delete;
}; int main()
{
try {
sonExc *e = new sonExc{ "Hello" };
throw e;
}
catch ( int e ) {
cout << "int *" << ( e ) << endl;
}
catch ( void* e ) {
cout << "void *" << reinterpret_cast<int> ( e ) << endl;
}
catch ( sonExc *e ) {
cout << "sonExc:" << e->what() << endl;
}
catch ( exception *e ) {
cout << "exception:" << e->what() << endl;
} system ( "pause" );
}

最新文章

  1. python编码规范
  2. mssql
  3. ggplot2.multiplot:将多个图形使用GGPLOT2在同一页上
  4. CCF NOI系列活动
  5. SpringMvc多文件上传简单实现
  6. Nginx在嵌入式系统中的应用
  7. 用PHP写的一个简单的分页类 1.0版
  8. 去掉app右侧滑动时出现的滚动条
  9. 无显示仍然发挥树莓派——VNCserver设定
  10. 批量去除office超链接
  11. Merge INTO的用法参考
  12. zw版足彩大数据&报价
  13. 简单GC具体操作参数查看
  14. Android 获取版本号名称工具类
  15. 【ZJOI2016】线段树
  16. [leetcode]311. Sparse Matrix Multiplication 稀疏矩阵相乘
  17. .21-浅析webpack源码之事件流this-compilation
  18. 推荐十款java开源中文分词组件
  19. PMS—团队展示
  20. 【hive】关于用户留存率的计算

热门文章

  1. Maven错误信息:Missing artifact jdk.tools:jdk.tools:jar:1.6
  2. java map遍历、排序,根据value获取key
  3. Redis 基础(一)
  4. redis笔记总结之redis安装
  5. python计算机基础-Day1
  6. spark source code 分析之ApplicationMaster overview(yarn deploy client mode)
  7. python 练完这些,你的函数编程就ok了
  8. 【前端单元测试入门05】react的单元测试之jest
  9. PHP之取得当前时间函数方法
  10. 生成式模型之 GAN