我来自 Ruby 和 Java 背景,最近开始探索 C++。
虽然我最初通过简单地继承异常类来创建自定义异常的尝试因晦涩而失败,但我发现以下示例发布在网站上:
class Exception : public exception
{
public:
Exception(string m="exception!") : msg(m) {}
~Exception() throw() {}
const char* what() const throw() { return msg.c_str(); }
private:
string msg;
};
目前我对 C++ 语义的理解还不是很成熟,我想对这里发生的事情有一个更好的理解。
在语句const char* what() const throw()
中,该部分const throw()
做了什么,它是什么类型的编程结构?
throw()
另外,析构函数规范的目的和意图是什么~Exception()
,为什么我需要一个析构函数规范,尽管我不需要它做一些特别的事情?从异常继承不destructor
应该足够吗?