home *** CD-ROM | disk | FTP | other *** search
- //: C10:Selfmem.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // Static member of same type
- // ensures only one object of this type exists.
- // Also referred to as a "singleton" pattern.
- #include <iostream>
- using namespace std;
-
- class Egg {
- static Egg e;
- int i;
- Egg(int ii) : i(ii) {}
- public:
- static Egg* instance() { return &e; }
- int val() { return i; }
- };
-
- Egg Egg::e(47);
-
- int main() {
- //! Egg x(1); // Error -- can't create an Egg
- // You can access the single instance:
- cout << Egg::instance()->val() << endl;
- } ///:~
-