#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* Singleton::instance = NULL;
//Singleton* TmpRec = Singleton* Singleton::instance; <- COMMENTED BECAUSE WRONG
int main(void) {
TmpRec = Singleton::GetInstance();
TmpRec->DeptNum = 30;
cout << "Value of DeptNum is: " << TmpRec->DeptNum << endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYTkFNRSA9IDMxOwoKc3RydWN0IFNpbmdsZXRvbiB7CiAgICBwcml2YXRlOgogICAgCiAgICBTaW5nbGV0b24oKSB7fQogICAgU2luZ2xldG9uKGNvbnN0IFNpbmdsZXRvbiYpOyAvLyBEaXNhYmxpbmcgY29weS1jdG9yCiAgICBTaW5nbGV0b24mIG9wZXJhdG9yPShjb25zdCBTaW5nbGV0b24mKTsKICAgIAogICAgc3RhdGljIFNpbmdsZXRvbiogaW5zdGFuY2U7CgogICAgcHVibGljOgogICAgCiAgICBpbnQgRGVwdE51bTsKICAgIGNoYXIgTmFtZVtNQVhOQU1FXTsKICAgIGludCBBZ2U7CiAgICBpbnQgRW1wbElEOyAgLy8ga2V5IGZpZWxkCiAgICAKICAgIHN0YXRpYyBTaW5nbGV0b24qIEdldEluc3RhbmNlKCkgewogICAgICAgIGlmICghaW5zdGFuY2UpCiAgICAgICAgICAgIGluc3RhbmNlID0gbmV3IFNpbmdsZXRvbigpOwoKICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICB9CiAgICAKfTsKClNpbmdsZXRvbiogU2luZ2xldG9uOjppbnN0YW5jZSA9IE5VTEw7Ci8vU2luZ2xldG9uKiBUbXBSZWMgPSBTaW5nbGV0b24qIFNpbmdsZXRvbjo6aW5zdGFuY2U7ICA8LSBDT01NRU5URUQgQkVDQVVTRSBXUk9ORwoKaW50IG1haW4odm9pZCkgewoKICAgVG1wUmVjID0gU2luZ2xldG9uOjpHZXRJbnN0YW5jZSgpOwogICBUbXBSZWMtPkRlcHROdW0gPSAzMDsKICAgY291dCA8PCAiVmFsdWUgb2YgRGVwdE51bSBpczogIiA8PCBUbXBSZWMtPkRlcHROdW0gPDwgZW5kbDsKCiAgIHJldHVybiAwOwp9Cg==