这个函数声明在c ++中意味着什么

Vij*_*jay 18 c++

virtual const char* what() const throw()
{

}
Run Code Online (Sandbox Code Playgroud)

AFAIK它是一个函数,它将返回一个指向可变char的常量指针.剩下的我不确定.有人可以帮忙吗?

Jon*_*Jon 26

关于const throw()部分:

  • const表示此函数(它是一个成员函数)不会更改调用它的对象的可观察状态.编译器强制执行此操作,不允许您const从此方法调用非方法,并且不允许您修改成员的值.
  • throw()意味着您向编译器保证此函数永远不会允许发出异常.这被称为异常规范,(长话短说)是无用的,可能会产生误导.


Arm*_*yan 10

这意味着what返回的虚拟成员函数const char*可以在const对象(最后的const)上调用.throw()意味着它有点保证不扔任何东西.

查看C++中的异常规范,并注意它们在C++ 0x中被弃用了:)


Cho*_*ett 7

从左到右:

  • virtual - 可以在派生类中重写此函数
  • const char* - 此函数返回一个指向常量(数组)char的可修改指针
  • what() - 此功能不带参数
  • const- 此函数不会修改mutable调用它的对象的(非)成员,因此可以在const其类的实例上调用
  • throw() - 预计此函数不会抛出任何异常.如果是,unexpected将被调用.