class myexception: public exception
{
virtual const char* what() const throw()
{
return "My exception happened";
}
};
抱歉,这个问题可能听起来很愚蠢,但我无法解析标题。有人可以用英语描述标题的实际含义吗?首先让我觉得奇怪的是关键字virtual
。 myexception
类不是基类,它继承自已经实现的 exception
类,那么为什么在这里使用 virtual
呢?我猜 const
是用于返回类型,它是一个 c 风格的字符串,它是 const,而另一个 const
是为了确保这个对象不能被修改(有人能告诉我那个物体可能是什么吗?)。我不知道 throw()
究竟做了什么,以前从未见过这种语法。
最佳答案
virtual
什么都不添加,因为被覆盖的方法已经是虚拟的。你是对的:它可以省略。
const char* what()
一个名为 what()
的成员函数,它不接受任何参数并返回一个指向 const char
的指针。
const
可以通过const
指针或对此类或派生类的实例的引用来调用成员函数。
throw()
不抛出异常。
关于c++ - 这个头文件是什么意思(virtual const char* what() const throw())?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22493294/