fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. once_flag flg;
  5. class SingleTon
  6. {
  7. static SingleTon* pInstance ;
  8. SingleTon(){}
  9. SingleTon& operator=(const SingleTon& a){}
  10. SingleTon(const SingleTon& a){}
  11. int val ;
  12. public :
  13. static SingleTon* getInstance()
  14. {
  15. if(pInstance==nullptr)
  16. {
  17. call_once(flg , [](){pInstance = new SingleTon(); }) ;
  18. }
  19. return pInstance;
  20. }
  21. void SetVal(int i){ val = i ;}
  22. int GetVal(){return val;}
  23. };
  24.  
  25. SingleTon* SingleTon::pInstance = 0;
  26.  
  27. int main() {
  28. // your code goes here
  29. SingleTon::getInstance()->SetVal(10);
  30. cout << SingleTon::getInstance()->GetVal();
  31.  
  32.  
  33. return 0;
  34. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
10