我有以下课程
class CItem
{
public:
CItem(CRegistry &Registry) _Registry(Registry) {Registry.Register();}
~CItem() {_Registry.Unregister()};
private:
CRegistry &_Registry;
}
过了一会儿,事实证明并非所有 CItem 对象都需要注册,所以我需要一个 CItem 版本,它不需要构造函数中的 Registry(当然还有注册代码)。我该如何实施?我在这里可以看到的唯一解决方案是获取注册表并将其保留为指针。有没有更优雅的解决方案,比如使用模板等(我不喜欢从引用切换到指针)?