C++ C++;:设计对象以对系统中的唯一项建模

C++ C++;:设计对象以对系统中的唯一项建模,c++,design-patterns,modeling,C++,Design Patterns,Modeling,我想模拟一组项目(人),其中每个人都有一组独特的特征。。。如果我随意无条件地传递对象,那么复制构造函数等将导致我的对象发散,这样对象A最终将有多个不同的浮动版本,A`从方法X返回,A`从方法Y返回等等。哪种设计模式将帮助我确保,如果我将对象传递给各种函数,我将确保始终对每个给定对象的唯一表示进行操作。谢谢。可以使用智能指针,也可以通过引用传递。我真的不确定您希望需要什么更高级的设计模式。要么使用智能指针,要么通过引用传递。我真的不确定您希望需要什么更高级的设计模式。正如其他人所说,指针、智能指针

我想模拟一组项目(人),其中每个人都有一组独特的特征。。。如果我随意无条件地传递对象,那么复制构造函数等将导致我的对象发散,这样对象A最终将有多个不同的浮动版本,A`从方法X返回,A`从方法Y返回等等。哪种设计模式将帮助我确保,如果我将对象传递给各种函数,我将确保始终对每个给定对象的唯一表示进行操作。谢谢。

可以使用智能指针,也可以通过引用传递。我真的不确定您希望需要什么更高级的设计模式。

要么使用智能指针,要么通过引用传递。我真的不确定您希望需要什么更高级的设计模式。

正如其他人所说,指针、智能指针或通过引用传递


如果担心忘记,可以将副本构造函数设为私有。这样,按值传递将是一个编译器错误。

正如其他人所说,指针、智能指针或按引用传递


如果担心忘记,可以将副本构造函数设为私有。这样,按值传递将是一个编译器错误。

只是不要复制对象。将它们全部存储在中心位置(使用std::vector或std::unordered_map等容器),然后将引用传递给各种函数。例如:

void MutatePerson( Person& object );
void InspectPerson( const Person& object );

只是不要复制你的对象。将它们全部存储在中心位置(使用std::vector或std::unordered_map等容器),然后将引用传递给各种函数。例如:

void MutatePerson( Person& object );
void InspectPerson( const Person& object );

只需传递智能指针。”nuff saidYou可以保护类不被复制,并强制执行指针/引用语义,如前所述。还请注意,便利类的存在只是传递智能指针。”nuff saidYou可以保护类不被复制,并强制执行指针/引用语义,如前所述。还要注意便利类的存在