gpt4 book ai didi

c++ - 为具有一些指针和许多数据成员的类设计复制构造函数的任何好的技术

转载 作者:行者123 更新时间:2023-11-28 03:10:51 24 4
gpt4 key购买 nike

我面临一个必须使用少数指针的类(由于依赖旧库,这里不太容易使用智能指针)并且该类还包含大量非指针数据成员,可能随着项目的进展而增长。

因为有指针,我想写自己的拷贝构造函数。由于繁琐和维护困难,我不想写一个包含所有非指针数据成员的初始化列表,并在每次添加新成员时更新它。

如果我能以某种方式依赖默认的复制构造函数,然后只为少数几个指针修改它,那就太好了,但我不确定这是否可能?有没有办法做到这一点或其他一些技术来处理这种情况?

一些想法可能会回答我自己的问题。

数据成员可以放在一个单独的类中。然后原始类可以只包含数据类的一个对象并做它的默认拷贝。

还有更好的吗?

最佳答案

如果您的类不拥有原始指针,只需浅拷贝它们并称其为好。

如果您的类确实拥有指针,请继续使用适当的智能指针并将原始指针从它传递到外部库的 API。

最后,如果您和图书馆共享所有权,请放弃图书馆并找到一个具有合理界面的图书馆。或者,如果绝对必须,将类的指针成员放入 special_library_pointer_holder 类中,该类知道如何正确复制/分配/等等每个指针,而不是它相对于外部库的指针,然后仅包含special_library_pointer_holder 在您的原始类中。

关于c++ - 为具有一些指针和许多数据成员的类设计复制构造函数的任何好的技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18540461/

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