假设在您的 C++ 代码库中出于任何原因您必须使用侵入式引用计数。我听到并且可以看到通过实现多个干净的定义良好的接口来提供其功能的类的许多优点。也就是说,它们应该从定义接口的抽象类继承。
实现侵入式引用计数的一种常见方法是从提供引用计数实现的基类继承。那必须是基类,这样你才能进入看起来有点过于复杂的菱形继承。有没有更好的方法?
当不使用侵入式引用计数时,这似乎微不足道。有人在做这种侵入式引用计数和继承多个抽象类的组合吗?
假设在您的 C++ 代码库中出于任何原因您必须使用侵入式引用计数。我听到并且可以看到通过实现多个干净的定义良好的接口来提供其功能的类的许多优点。也就是说,它们应该从定义接口的抽象类继承。
实现侵入式引用计数的一种常见方法是从提供引用计数实现的基类继承。那必须是基类,这样你才能进入看起来有点过于复杂的菱形继承。有没有更好的方法?
当不使用侵入式引用计数时,这似乎微不足道。有人在做这种侵入式引用计数和继承多个抽象类的组合吗?
是的,你可以这么做!Loki 模板库中有一个很好的示例,如何为用于覆盖 MS COM 接口指针的SmartPtr引入此类策略。
COMRefCounted
在 中查找类SmartPtr.h
。