C++ Pointers Get Smart: Listing 1
Definition of my_class
#include <iostream>
using namespace std;
class my_class
{
private:
// like in Java and C#, the following static member is
// shared by all my_class instances
static unsigned instance_counter_;
// about this other, instead, each instance has its own
// like in managed languages
unsigned instance_id_;
public:
// Constructor.
my_class()
{
cout << "Instance " << (instance_id_ = ++instance_counter_)
<< " being created." << endl;
}
// Destructor.
~my_class()
{
cout << "Instance " << instance_id_ << " being destroyed." << endl;
}
unsigned get_id() { return instance_id_; }
};
// class members are initialized outside the class declaration in C++
unsigned my_class::instance_counter_ = 0;
About the Author
Diego Dagum is a software architect and developer with more than 20 years of experience. He can be reached at [email protected].