关于c ++:在C ++ 11中有一种很好的方式来存储对作为成员的其他对象的引用吗?

Is there a good way in C++11 to store references to other objects as a members?

本问题已经有最佳答案,请猛点这里访问。

大家好!

这就是我卡住的地方:我有三个具体的类别:ComputerPeripheralPersonComputerPeripheral都是扩展类Device

Device有一个私有成员Device.ownerPerson,它应该存储某种对设备所有者的引用,以及一个公共功能Device.getOwner()Person

另一方面,任何一个Person都有自己的私有成员Person.peripheralsPerson.computers和公共职能Person.get()。等。

是否有任何设计模式可以在类之间建立这些连接?

不转移直接所有权!(EDOCX1 0)没有杀死EDOCX1、2等实例的权限,这就是为什么我要小心使用指针的原因。

但是如果EDCOX1的0个实例将改变它的所有者,那么它必须从前一个所有者的计算机列表中消失,并出现在新所有者的列表中。和Peripheral一样。

如果你有什么问题,请问。也许,我对这种情况的解释很差。为朗的错误道歉。


您可以使用std::unique_ptr来确保存在对该对象的单个引用。改变所有权使用的STD::移动。

1
2
std::unique_ptr<Device> devicePtr(new Device());
std::unique_ptr<Device> devicePtr2(std::move(devicePtr));

每个人都有自己独特的指针。