一个关于创建对象和删除对对象的有关问题,请帮帮小弟我

一个关于创建对象和删除对对象的问题,请帮帮我!
定义类Example,其中包括两个私有数据成员:dat和noofobjects,将其中的dat(整型)采用堆内存分配方式来创建,将noofobjects(整型)设置成静态数据成员,并定义访问noofobjects的静态成员函数.要求每创建一个对象,noofobjects的值就加1,每撤消一个对象,noofobjects的值就减1.在主函数中创建三个对象,然后一一撤消,在创建和撤消对象时显示noofobjects值的变化.

我知道用new和   delete可以创建删除对象,但我具体怎么编,我不知如何下手,而且我不知道dat在这里有什么用?请各位大哥帮帮小妹,定感激涕零.

------解决方案--------------------
#include <iostream>

class Example
{
private:
int *pdat_;
static int noofobjects_;
public:
~Example(void);
Example(const int dat = 0);
Example(const Example &e);
Example & operator = (const Example &e);
};

int Example::noofobjects_ = 0;

Example::~Example(void)
{
--noofobjects_;
std::cout < < noofobjects_ < < std::endl;
delete pdat_;
}

Example::Example(const int dat)
{
pdat_ = new int(dat);
++noofobjects_;
std::cout < < noofobjects_ < < std::endl;
}

Example::Example(const Example &e)
{
pdat_ = new int(*(e.pdat_));
++noofobjects_;
std::cout < < noofobjects_ < < std::endl;
}

Example & Example::operator =(const Example &e)
{
int *temp = pdat_;
pdat_ = new int(*(e.pdat_));
delete temp;
return *this;
}

int main(void)
{
Example e1, e2;
Example *e3 = new Example;
delete e3;
return 0;
}