ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 如果可能,应该在所有的构造函数中初始化所有的数据成员 ## 优先采用深度赋值 在设计副杂对象的时候,你需要做出一项主要决策,即应为对象实现深拷贝(得到深层复本)还是浅拷贝(得到浅层复本)。 对象的深层复本是对象成员数据逐项副制( member-wise copy)的结果;而其浅层复本则往往只是指向或引用同一个实际对象. 实现浅层复本的动机一般是为了改善性能。尽管把大型的对象副制出多份复本从美学上看十分令人不快,但这样做很少会导致显著的性能损失。 某几个对象可能会引起性能问题,但众所周知,程序员们很不擅长推测真正招致问题的代码 为了不确定的性能提高而增加复杂度是不妥的,因此,在面临选择实现深拷贝还是浅拷贝时,一种合理的方式便是优先实现深拷贝——除非能够论证浅拷贝更好。