- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
考虑以下代码:
class A
{
public:
A() {}
~A() {}
};
class B: public A
{
B() {}
~B() {}
};
A* b = new B;
delete b; // undefined behaviour
我的理解是,C++ 标准规定删除 b 是未定义的行为 - 即,任何事情 都可能发生。但是,在现实世界中,我的经验是 ~A() 总是被调用,并且内存被正确释放。
如果 B 引入任何具有自己的析构函数的类成员,它们将不会被调用,但我只对上面的简单情况感兴趣,其中使用继承可能会修复一个类方法中的错误源代码不可用。
显然,这不会是您在非平凡情况下想要的,但它至少是一致的。对于显示的代码,您是否知道任何 C++ 实现都不会发生上述情况?
最佳答案
这是C++标签中一个永无止境的问题:“什么是可预测的未定义行为”。自己轻松解决所有问题:获取每个 C++ 编译器实现并检查可预测的不可预测的是否仍然有效。然而,这是您必须自己做的事情。
请发回您发现的内容,了解这些内容会非常有用。只要不可预测的具有全面的一致和带注释的行为。对于编写 C++ 编译器的人来说,很难让任何人关注他的产品。按照惯例,标准化很多发生在具有很多未定义行为的语言中。
关于c++ - 非虚拟析构函数的未定义行为 - 这是一个现实世界的问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4522994/
笙歌 痞性. 剩余 青怏 洒脱 现实 搁浅° 软萌 路途 娼妓 离骚 逐你 微尘 迷魂 ▼ 扎心 堇夏 残年っ ╭淡妆╮ 24K.纯疯 隐痛
我正在尝试不费吹灰之力地实现完全有效的持久性无知。不过我有很多问题: 最简单的选项 这真的很简单——可以像在 SOA 中那样使用 Spring Data 注释对实体进行注释(但让它们真正执行逻辑)?除
我想完成一项简单的任务。 我在可变宽度容器中有一个图像。 容器的宽度可以为 300、400、700 或 900 像素。这是通过媒体查询完成的图像应占据该容器的所有宽度。所以它也将是 300、400、7
我在使用 Storyboards AutoRotation 和 iPhone 时遇到问题。我已经将一个非常简单的项目与 3 个 View Controller 放在一起,并将其上传到 gitHub 以
我是一名优秀的程序员,十分优秀!