dimanche 6 septembre 2015

singleton as a template ,undefined error

 #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