在C++入门第12.1.1节(第457页(中,作者试图演示一个可用于shared_ptr在多个对象之间共享数据的观点。
但是,在我看来,最直接的方法是简单地在类中定义一个静态成员,该成员在所有对象之间自动共享。而且我们甚至根本不需要费心使用shared_ptr。 恕我直言,教科书已经想到了一个解决方案,并试图找到这个解决方案的问题。
对此有什么想法,编写真实代码的最佳实践是什么?
有了shared_ptr
可以在类型为T
的对象子集之间共享数据,static
成员变量在所有T
实例中共享单个值。如您所见,前者更加灵活。
一个例子是shared_ptr
本身的实现。引用计数在指向同一对象的所有共享指针之间共享,管理另一个对象的指针将具有单独的共享引用计数,依此类推。