gpt4 book ai didi

c++ - 当来自 "new"表达式的指针传递给 dynamic_cast 时,如何跟踪情况?

转载 作者:行者123 更新时间:2023-11-30 02:09:25 25 4
gpt4 key购买 nike

最近我在审查一些旧代码时发现了以下内容:

auto_ptr<DerivedClass> pointer = dynamic_cast<CBase*>( new CDerived() );

除了这段代码在有效情况下没有意义(在有效情况下 class Derived 派生自 class Base 并且没有 dynamic_cast是必要的)对象所有权存在问题。如果出于某种原因 dynamic_cast 返回一个空指针,则 auto_ptr 将不会绑定(bind)到创建的对象,并且该对象将被泄漏。

是否有一些技术可以帮助防止此类错误,例如让编译器发出警告或类似的错误?

最佳答案

摆脱所有的dynamic_cast

全部。

那么就不需要跟踪了。

关于c++ - 当来自 "new"表达式的指针传递给 dynamic_cast 时,如何跟踪情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5496921/

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