#include <iostream>
template <class T>
class singleton
{
public :
static T* instance() {sinstance = new T; return sinstance;}
private :
static T* sinstance;
singleton(singleton const&);
singleton& operator=(singleton const&);
protected:
singleton();
~singleton() {delete sinstance;}
};
template <class T> T* singleton<T>::sinstance=NULL;
class circle
{public:
circle( int radius) { pointer = new int; *pointer = radius ;}
circle( const circle &r) { pointer = new int; *pointer=*r.pointer;}
~circle() { delete pointer;}
circle& operator=(const circle&pr)
{ *pointer =*pr.pointer; }
int getData(){ return *pointer;}
private:
int *pointer;
};
typedef singleton<circle> circlesingleton;
int main()
{
circle(7);
circlesingleton::instance()->getData();
}
Hi. Im doing homework using singleton class .How to corect this ?Im a beginner. And these code are code I search online and add some part to it .Thanks. The first class in a singleton class which I use as a template. The circle class in a class our professor told us to use canonical form
Aucun commentaire:
Enregistrer un commentaire