c – 对引用计数感到困惑

感谢您提前帮助.
我正在阅读Scott Meyers的书“More Effective C”,但是第29项“参考计数”中的一个简单程序确实让我感到困惑.
程序复制到这里:

String :: String(const String& rhs):value(rhs.value)
    {
      值 – >引用计数;
    }

然后代码:

String s1("More Effective C++");
String s2=s1;

我真的很困惑为什么s1和s2都有一个refCount 2.
我理解的是,由于复制构造函数是通过引用传递给const,在s2 = s1之后,s2.refCount将变为2,而s1.refCount将根本不会改变.
请纠正我!!
再次感谢.

最好的祝福.

最佳答案

I understand that s2.refCount will become 2, while s1.refCount will not change at all.

有你的误解.没有s2.refCount和s1.refCount这样的动物.相反,变量称为s2.value-> refCount和s1.value-> refCount.请注意,s2.value == s1.value,因此它们本身共享相同的refCount成员.

转载注明原文:c – 对引用计数感到困惑 - 代码日志