#include<iostream>
using namespace std;
const int MAXNAME = 31 ;
struct Singleton {
private :
Singleton( ) { }
Singleton( const Singleton& ) ; // Disabling copy-ctor
Singleton& operator= ( const Singleton& ) ;
static Singleton* instance;
public :
int DeptNum;
char Name[ MAXNAME] ;
int Age;
int EmplID; // key field
static Singleton* GetInstance( ) {
if ( ! instance)
instance = new Singleton( ) ;
return instance;
}
} ;
//Singleton* TmpRec = NULL;
//Singleton* TmpRec = Singleton* Singleton::instance; <- COMMENTED BECAUSE WRONG
int main( void ) {
Singleton* TmpRec = Singleton:: GetInstance ( ) ;
TmpRec- > DeptNum = 30 ;
cout << "Value of DeptNum is: " << TmpRec- > DeptNum << endl;
return 0 ;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYTkFNRSA9IDMxOwoKc3RydWN0IFNpbmdsZXRvbiB7CiAgICBwcml2YXRlOgogICAgCiAgICBTaW5nbGV0b24oKSB7fQogICAgU2luZ2xldG9uKGNvbnN0IFNpbmdsZXRvbiYpOyAvLyBEaXNhYmxpbmcgY29weS1jdG9yCiAgICBTaW5nbGV0b24mIG9wZXJhdG9yPShjb25zdCBTaW5nbGV0b24mKTsKICAgIAogICAgc3RhdGljIFNpbmdsZXRvbiogaW5zdGFuY2U7CgogICAgcHVibGljOgogICAgCiAgICBpbnQgRGVwdE51bTsKICAgIGNoYXIgTmFtZVtNQVhOQU1FXTsKICAgIGludCBBZ2U7CiAgICBpbnQgRW1wbElEOyAgLy8ga2V5IGZpZWxkCiAgICAKICAgIHN0YXRpYyBTaW5nbGV0b24qIEdldEluc3RhbmNlKCkgewogICAgICAgIGlmICghaW5zdGFuY2UpCiAgICAgICAgICAgIGluc3RhbmNlID0gbmV3IFNpbmdsZXRvbigpOwoKICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICB9CiAgICAKfTsKCi8vU2luZ2xldG9uKiBUbXBSZWMgPSBOVUxMOwovL1NpbmdsZXRvbiogVG1wUmVjID0gU2luZ2xldG9uKiBTaW5nbGV0b246Omluc3RhbmNlOyAgPC0gQ09NTUVOVEVEIEJFQ0FVU0UgV1JPTkcKCmludCBtYWluKHZvaWQpIHsKCiAgIFNpbmdsZXRvbiogVG1wUmVjID0gU2luZ2xldG9uOjpHZXRJbnN0YW5jZSgpOwogICBUbXBSZWMtPkRlcHROdW0gPSAzMDsKICAgY291dCA8PCAiVmFsdWUgb2YgRGVwdE51bSBpczogIiA8PCBUbXBSZWMtPkRlcHROdW0gPDwgZW5kbDsKCiAgIHJldHVybiAwOwp9Cg==