[求助]一个编程问题
各位高手,我是个编程菜鸟,学编程1个月,老师出的题,周一交,实在惭愧,根本不会,请大家帮我看看2. 给定类模板Singleton 的定义:
template <class T> class Singleton
{
static bool bHasCreated;// 设其初值为false
protected:
static T* pInstance;
Singleton() { /* ……*/ }// 问题b
public:
static T& instance() { /* ……*/ }// 问题a
T* operator &() { exit (-1); return 0; }// 问题c
};
其设计意图是使继承该模板的所有类(例如下面表示系统时钟的Clock类)均为“独身”模式(仅有一个实例,且只能通过方法
instance() 来产生和获得这个实例):
class Clock: public Singleton<Clock> { /* …*/ };// 范例
a.试给出方法instance() 的实现(须达到上述关于“独身”模式的设计意图);
b.类模板中的Constructor 的设计意图是:防止继承该模板的类自行产生实例而绕过了方法instance() 所进行的单一实例控制。
试解释为什么定义了这个Constructor 就能达到这一设计意图,然后给出相应的实现。
c. 对操作符& 进行过载的设计意图是什么?