gpt4 book ai didi

c++ - 为什么 std::ios_base::failure 有两个继承图,有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 20:45:03 25 4
gpt4 key购买 nike

根据 cppreference.com , std::ios_base::failure 有两个继承层次结构:

enter image description here

问题

为什么以及有什么区别?

背景

使用 g++ 4.7.1 我遇到了这个错误,到目前为止我知道这是因为第一个继承层次:

error: 'const class std::ios_base::failure' has no member named 'code'

更新

使用 gcc,即使在 C++11 模式下,ios_base::failure 仍然继承自 exception。引自 here :

ios_base::failure is not derived from system_error.

最佳答案

那是因为std::system_error在 C++11 中引入。 std::ios_base::failure 直接派生自 std::exception 之前。

code() method 是 std::system_error 的成员,std::ios_base::failure 不会在不支持 C++11 的环境中暴露它。

关于c++ - 为什么 std::ios_base::failure 有两个继承图,有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11715817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com