加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Widget wag = * new Widget()

发布时间:2020-12-16 10:38:13 所属栏目:百科 来源:网络整理
导读:我刚刚遇到了一个C SDK,它大量使用了这个非常奇怪的*新模式.我不明白为什么他们这样做. 用* new构造对象有什么意义,例如Widget wag = * new Widget();? 更新:有趣的是,他们实际上在做XPtr T p = * new T; – 必须是一些智能指针魔术的语义.仍然没有多大意义
我刚刚遇到了一个C SDK,它大量使用了这个非常奇怪的*新模式.我不明白为什么他们这样做.

用* new构造对象有什么意义,例如Widget wag = * new Widget();?

更新:有趣的是,他们实际上在做XPtr< T> p = * new T; – 必须是一些智能指针魔术的语义.仍然没有多大意义.我相信SDK是高品质的.

解决方法

它构造一个新对象,然后复制它.丢弃指向原始对象的指针,因此可能存在内存泄漏.

但是,不一定存在内存泄漏.可能是Widget维护其所有实例的列表,并在其构造函数和析构函数中更新该列表.可能还有其他方法可以获得列表的内容.

但这似乎毫无意义.原因可能是由于对代码真正起作用的误解.找出代码编制方式的最佳方法是询问编写代码的人.代码的评论中可能有线索.您能否透露更多关于您正在查看的代码的细节?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读