Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;虚拟方法_C++ - Fatal编程技术网

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对我来说是新的