<分区>
我有 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()
部分做了什么,它是什么编程结构?
此外,析构函数规范 ~Exception()
中 throw()
的目的和意图是什么,为什么我需要有一个析构函数规范,尽管我没有不需要它做一些特别的事情吗?从异常继承的析构函数
不应该足够了吗?