linux 构造函数 throw,在自定义异常的方法/构造函数签名中带和不带throw()的C++...
我是C++的初学者,因此对这个愚蠢的问题表示歉意。我在这里发布它,因为我无法在stackoverflow上找到类似的答案。在自定义异常的方法/构造函数签名中带和不带throw()的C++
我是通过在C++和我正在做一些手与自定义异常例外进步,我有这样的代码
class MyException: public std::exception{
public:
virtual const char* what() const throw() {
return "something bad happened";
}
};
// class that throws above exception
class canGoWrong {
public:
canGoWrong(){
throw MyException();
}
};
上面的代码被老师表示。构造函数刚刚实现了在基类exception中定义的虚函数。我到了那里。
现在,当我尝试使用不同的版本进行练习时,我尝试使用自定义函数而不是重新定义虚拟(因为C++没有严格执行接口的概念,如果我在这里错了,请纠正我的错误。)
我写它作为
class my_custom_shit_exception: public std::exception {
public:
const char* show() { // I omitted the const throw() here
return "This is an error encountered\n";
}
};
class myclass {
public:
myclass() {
throw my_custom_shit_exception();
}
};
总之,我没有发现这两种方式在活动的差异
public:
const char* show() {
return "This is an error encountered\n";
}
virtual const char* what() const throw() {
return "something bad happened";
}
那么为什么在what()虚函数中使用const throw()?它有什么不同?
谢谢大家。
+3
“因为C++没有严格执行接口的概念”它的确适用于纯虚函数,如果这就是你的意思。 –
+1
你省略的throw()是一个'异常说明'它告诉编译器该函数不会抛出任何异常,'what()'函数即不说它强制执行。为了清楚起见,请阅读异常规范。 –
+1
非常有趣的问题。这不是同一个问题,但我认为[这个是有帮助的](https://stackoverflow.com/questions/5230463/what-does-this-function-declaration-mean-in-c) –
linux 构造函数 throw,在自定义异常的方法/构造函数签名中带和不带throw()的C++...相关推荐
- Linux安装 VMware tools 工具的方法(转,已测试成功)
Linux安装 VMware tools 工具的方法 VMware虚拟机中如何安装VMWare-Tools详解好处:可以支持图形界面,可以支持共享文件功能等 1 工具/原料 1)安装过虚拟机软件的计算 ...
- 总结 构造函数与非构造函数 原型继承的一个方法
这两天真的一直在看原型以及继承之间的千丝万缕,哇,收获颇多,不过所谓温故知新,还是要多复习复习知识点,才能察觉那些之前不易发现的小小sparkle 真心推荐MDN文档--对象原型,JavaScript ...
- JavaScript 面向对象编程(二) —— 构造函数 / 原型 / 继承 / ES5 新增方法
本篇为 JavaScript 进阶 ES6 系列笔记第二篇,将陆续更新后续内容.参考:JavaScript 进阶面向对象 ES6 :ECMAScript 6 入门 : Javascript 继承机制的 ...
- ES6/02/创建对象,构造函数和原型,原型和原型链,this指向,类,ES5新增的方法,数组方法,回调函数,ES5新增的字符串方法,ES5中新增的对象方法
创建对象 1,利用new Object()创建对象 var obj1 =new Object(); 2,利用对象字面量创建对象 var obj2={}; 3,利用构造函数创建对象 function S ...
- -1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常...
异常 异常:异常就是Java程序在运行过程中出现的错误. 异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象. 其实就是Java对不正常情况进行描述后的对象 ...
- php构造函数里抛出异常_php-在类的构造函数中返回值
php-在类的构造函数中返回值 到目前为止,我有一个带有构造函数的29447791671682017201728类 public function __construct ($identifier = ...
- 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | DexFile 构造函数及相关调用函数 | Android 源码中查找 native 函数 )
文章目录 一.DexFile 构造函数 二.DexFile.openInMemoryDexFile 函数 三.Android 源码中查找 native 函数 一.DexFile 构造函数 上一篇博客 ...
- 构造函数调用默认构造函数_显式无参数构造函数与默认构造函数
构造函数调用默认构造函数 大多数不熟悉Java的开发人员都会Swift了解到,如果他们没有指定至少一个显式构造函数,则会为Java类隐式创建一个" 默认构造函数 "( 由javac ...
- JAVA构造函数是不是封装_Java 封装与构造函数
面向对象思想思想的三个特征:封装,继承,多态. 封装: 表现:函数就是一个最基本的封装体,类也是一个封装体. 好处:1.提高了代码的复用性, 2.隐藏了实现细节,可以对外提供可以访问的方法,便于调用者 ...
最新文章
- 【廖雪峰python入门笔记】break和continue
- 苹果怎么换行打字_停课不停学!苹果电脑学习类软件推荐,丰富您的假期生活...
- JAVA中复制数组的方法
- JMeter断言介绍
- oracle备份数据库视频,Oracle数据库还原
- Asp.Net登陆记住用户功能实现
- arcgis将小于0的数值设置成0.01
- 面试题 02.06. 回文链表
- mysql5.5.17源代码安装
- 安卓iccid_Android 获取双卡手机IMEI,IMSI,ICCID
- LeetCode之寻找峰值
- NTLDR的故事:用途和常见故障分析方法
- OpenCV 图片模糊处理
- python大作业 课设
- 下周把交接文档做完就交接实习结束离职了
- 开源机器人SmallRobotArm机器人源码解读
- 1068 万绿丛中一点红 (C++)
- Android开发实现上一页,下一页显示内容
- DaVinci:曲线之 HSL 曲线
- 那些有趣又实用的开源人工智能项目 Top 10
热门文章
- easyUI datebox 日期空间斜杠格式化。例如将日期空间中显示2017-03-13,改为2017/03/13...
- k-means聚类算法C++实现
- Spring MVC学习笔记(七)
- Adobe Photoshop源代码以及3800万用户信息泄漏
- 【转】B树的插入和删除
- 学习: 导航器添加修饰符
- 如何在您的笔记本上搭建View 演示环境 -7.无线配置与连接
- Swing-JTree树模型的操作
- 华为机试HJ36:字符串加密
- verilog赋多位值_Verilog入门学习笔记——第一弹