c++ - 从 std::exception 覆盖 what() 的正确方法
问题描述
我有以下自定义异常:
#ifndef BLATT4_OUTSIDESEABOUNDS_H
#define BLATT4_OUTSIDESEABOUNDS_H
#include <exception>
namespace GameObjects {
class OutsideSeaBounds : public std::exception {
public:
[[nodiscard]] const char * what() const noexcept override;
};
}
#endif
#include "OutsideSeaBounds.h"
namespace GameObjects {
const char *OutsideSeaBounds::what() const noexcept
{
return "Das Schiff muss im Wasser liegen";
}
}
但是,我的 IDE CLion 给了我一个警告Function 'what' hides a non-virtual function from class 'exception'。为什么会这样以及如何覆盖,而不是正确隐藏该功能?
解决方案
代码很好,你的IDE很傻。
风格说明:[[nodiscard]]
这里似乎很不合适,即使在技术上没有错误,它也不会帮助任何人。
推荐阅读
- c# - Ubuntu 18.04 托管 ASP.NET MVC4
- c++ - 有没有合法的方法将 unsigned char 指针转换为 std::byte 指针?
- javascript - 附加的 ajax 请求中断其他已经附加的 ajax 请求(纯 js)
- firebase - React-native ListView 排序数据
- python - 无法在 PyCharm 中键入字母或数字
- windows - 如何在 python Popen 中命名子进程?
- .net - 使用更改密钥反序列化 JSON?
- css - 不活动时禁用覆盖链接(移动设备)
- javascript - three.js - rotate a rectangular sprite around a sphere maintaining minimum proximity
- css - 一侧圆形的 CSS 按钮