c++ - 这个头文件是什么意思(virtual const char* what() const throw())?

标签 c++ exception

class myexception: public exception
{
  virtual const char* what() const throw()
  {
    return "My exception happened";
  }
};

抱歉,这个问题可能听起来很愚蠢,但我无法解析标题。有人可以用英语描述标题的实际含义吗?首先让我觉得奇怪的是关键字virtualmyexception 类不是基类,它继承自已经实现的 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/

相关文章:

c++ - 这种 C++ 异常的使用是否合理

c++ - 如何判断何时加载 dll

c++ - 设置 Promise 豁免会导致中止调用

c++ - 如何在 Windows 7 64 位下使用 AddMonitor() 添加 redmonnt.dll

c++ - 在抛出 'std::length_error' 实例后调用的 cout 结果终止

c# - 如何处理行为主体的异常

c# - 如何在二进制序列化类中存储任意二进制数据?

c# - Rowid中的SQLITE问题

c++ boost多线程,如何对线程进行排队

返回自定义类数组的 c++ 函数会出错