C++ 入门 12.1:我可以在类中使用静态向量成员实现 StrBlob<string> 吗?



在C++入门第12.1.1节(第457页(中,作者试图演示一个可用于shared_ptr在多个对象之间共享数据的观点。

但是,在我看来,最直接的方法是简单地在类中定义一个静态成员,该成员在所有对象之间自动共享。而且我们甚至根本不需要费心使用shared_ptr。 恕我直言,教科书已经想到了一个解决方案,并试图找到这个解决方案的问题。

对此有什么想法,编写真实代码的最佳实践是什么?

有了shared_ptr可以在类型为T的对象子集之间共享数据,static成员变量在所有T实例中共享单个值。如您所见,前者更加灵活。

一个例子是shared_ptr本身的实现。引用计数在指向同一对象的所有共享指针之间共享,管理另一个对象的指针将具有单独的共享引用计数,依此类推。

最新更新