单例模式-基类单例。。用于其他单例的派生

本文介绍了C++中如何通过基类实现单例模式,并探讨了继承、访问控制和友元类的关系。内容涉及基类构造函数和拷贝赋值函数设置为protected,以及单例模式在派生类中的应用。同时,文章指出友元关系不具有继承性和双向性,强调了单例模式在实际使用时的注意事项。
摘要由CSDN通过智能技术生成


首先是继承方式,为了进行单例的派生,需要将基类的构造函数以及拷贝赋值函数设置为protected成员

template <class T>
class Singleton
{
private:
	static T* m_Instance;
protected:
	Singleton(){};
	Singleton(const Singleton &);
	Singleton &operator=(const Singleton &);
public:
	static T* Get_Instance();
	static void Free_Instance();
}


继续记录之前 需要了解一下C++的继承机制

注意:派生类访问说明符对于派生类的成员以及友元能否访问其直接基类的成员没什么影响。对于基类的成员的访问权限只与基类中的访问说明符有关。派生访问说明符的目的是控制派生类用户(包括派生类的派生类在内)对于基类成员的访问权限                      C++ primer 544页

以及友元类的机制

友元类可以通过自己的方法来访问把它当做朋友的那个类的所有成员。我们把类B设置成了类A的友元类,但是这并不会是类A成为类B的友元。说白了就是:甲愿意把甲的秘密告诉乙,但是乙不见得愿意把乙自己的秘密告诉甲。

#include "Father.h" 
class A{ 
  friend class B; //友元类直接这样定义就OK
public: 
  A(){ 
}; 

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值