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
|
#include "e.h"
#include <iostream>
E::E ()
: m_count (0)
{
std::cout << "E::E" << std::endl;
}
void
E::Ref (void) const
{
std::cout << "E::Ref" << std::endl;
m_count++;
}
void
E::Unref (void) const
{
std::cout << "E::Unref" << std::endl;
m_count--;
if (m_count == 0)
{
delete this;
}
}
void
E::Do (void)
{
std::cout << "E::Do" << std::endl;
}
E::~E ()
{
std::cout << "E::~E" << std::endl;
}
E *
E::CreateWithoutRef (void)
{
std::cout << "E::CreateWithoutRef" << std::endl;
return new E ();
}
E *
E::CreateWithRef (void)
{
std::cout << "E::CreateWithRef" << std::endl;
E *e = new E ();
e->Ref ();
return e;
}
|