Я хотел бы смоделировать группу предметов (людей), у которых у каждого человека есть набор уникальных характеристик … Если я буду волей-неволей обходить свои объекты, то при копировании конструкторов и т. Д. Мои объекты будут расходиться так, что Объект А будет в конечном счете, множество различных версий плавают вокруг, A` возвращается из метода X, A« возвращается из метода Y и так далее. Какой шаблон проектирования поможет мне гарантировать, что, если я передам объекты различным функциям, я всегда буду действовать в соответствии с уникальным представлением каждого данного объекта. Благодарю.
Либо используйте умные указатели, либо просто перейдите по ссылке. Я не совсем уверен, какой более продвинутый шаблон дизайна вам нужен.
Как уже говорили другие, указатели, умные указатели или переход по ссылке.
Если вы беспокоитесь о том, чтобы забыть, вы можете сделать конструктор копирования закрытым. Таким образом, передача по значению будет ошибкой компилятора.
Просто не делайте копии своих объектов. Храните их все в центральном месте (используя контейнер, такой как std :: vector или std :: unordered_map), а затем передайте ссылки на различные функции. Например:
void MutatePerson( Person& object );
void InspectPerson( const Person& object );