1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| #include <iostream>
using namespace std;
// Base class
class Shape
{
public:
Shape(){}
~Shape(){}
void setWidth(int w)
{
width = w;
}
void setHeight(int h)
{
height = h;
}
protected:
int width;
int height;
};
// Derived class
class Rectangle: public Shape
{
private:
/// Constructor
Rectangle();
/// Destructor
~Rectangle();
/// Singleton instance
static Rectangle *m_pcInstance;
public:
Rectangle* Rectangle::getInstance()
{
if(m_pcInstance == NULL)
m_pcInstance = new Rectangle();
return m_pcInstance;
}
Rectangle::Rectangle()
{
}
Rectangle::~Rectangle()
{
}
void Rectangle::vKill()
{
if(m_pcInstance != NULL)
{
delete m_pcInstance;
m_pcInstance = NULL;
}
}
int getArea()
{
return (width * height);
}
}; |