C++虚方法

标签 c++

如果我创建一个结构:

struct joinpoint_exception: exception
{

   virtual const char* what () const throw ();
};

在这种情况下,what () const throw () 是什么意思?

最佳答案

what 是一个虚拟成员函数,它返回一个指向常量 char 的指针,它本身是常量并且什么都不抛出。

virtual const char* what () const throw ();
|-----| <- virtual member function
        |---------| <- returning a pointer to constant chars
                    |-----| <- named what
                            |---| <- which is constant
                                  |-------| <- which does not throw

(从技术上讲,该函数仍然可以抛出,但如果抛出,它会直接转到 std::unexpected,默认调用 std::terminate)

关于C++虚方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6779531/

相关文章:

c++ - 返回 protected 数据时如何使用lock_guard

c++ - 稍后重新打开程序后,程序如何创建文件并知道文件的路径(由用户随机指定)?

c++ - 如何为 COM 接口(interface)中的方法生成弃用警告 (c++)

c++ - 可以原子地获取和运算的最大数据类型?

c++ - 强制引用类型

c++ - 程序按预期工作,直到我向它添加析构函数

c++ - "if (getline(fin, str)) {}"是否符合C++11标准?

c++ - 使用 FFMPEG 将 RGB 图像序列保存到 .mp4 时遇到问题

c++ - 重载组合运算符(+ =,-=,* =和/=)。不计算应如何

c++ - 如何检查我的窗口是否隐藏/可见?