C++ C++;虚拟方法
如果我创建一个结构:C++ C++;虚拟方法,c++,C++,如果我创建一个结构: struct joinpoint_exception: exception { virtual const char* what () const throw (); }; What()const throw()在这个上下文中是什么意思?什么是一个虚拟成员函数,返回一个指向常量char的指针,该常量本身是常量,不抛出任何内容 virtual const char*what()const throw(); |-----|这意味着what()是const(即它不会修改
struct joinpoint_exception: exception
{
virtual const char* what () const throw ();
};
What()const throw()
在这个上下文中是什么意思?什么是一个虚拟成员函数,返回一个指向常量char
的指针,该常量本身是常量,不抛出任何内容
virtual const char*what()const throw();
|-----|这意味着what()
是const
(即它不会修改对象的逻辑状态),并且它不会抛出任何异常(如throw()
所示)。方法的名称是什么
const
表示该方法不会更改任何内部数据,除非其可变
<代码>抛出(<)/代码>意味着该方法不应该抛出异常,如果它是“代码> STD::意外的< /C>”,而不是C++中的“/P>”,它们不是“方法”s,它们是“成员函数”。对于常量
,这是不正确的。该方法仍然可以修改mutable
成员。对于抛出
,这也是不正确的。函数仍然可以抛出,尽管任何这样做的尝试都会调用std::unexpected
@Billy:感谢您的澄清。我从不使用mutalbe,如果一个方法是const,那么它的const对我来说是:-)std::unexpected对我来说是新的