我想为一组项目(人)建模,其中每个人都有一组独特的特征......如果我随意传递我的对象,那么复制构造函数等将导致我的对象发散,使得对象 A 将最终会有多个不同的版本浮动,从方法 X 返回的 A`,从方法 Y 返回的 A`,等等。哪种设计模式将帮助我确保如果我将对象传递给各种函数,我将确保始终对每个给定对象的唯一表示进行操作。谢谢。
问问题
65 次
3 回答
2
要么使用智能指针,要么只通过引用传递。我不确定您期望需要哪种更高级的设计模式。
于 2013-01-17T16:28:19.390 回答
2
只是不要复制你的对象。将它们全部存储在一个中心位置(使用像 std::vector 或 std::unordered_map 这样的容器),然后将引用传递给您的各种函数。例如:
void MutatePerson( Person& object );
void InspectPerson( const Person& object );
于 2013-01-17T16:30:46.293 回答
2
正如其他人所说,指针、智能指针或传递引用。
如果您担心忘记,可以将复制构造函数设为私有。这样,按值传递将是编译器错误。
于 2013-01-17T16:29:25.197 回答