void Release() const;
protected:
+ // 初期化
+ reference_counter();
// 初期カウントを指定して初期化
- reference_counter( int initial_count = 0 );
+ reference_counter( int initial_count );
// コピーは一応可能にする
// カウントは動かない
reference_counter( const reference_counter& );
int use_count() const { return count; }
protected:
- reference_counter( int initial_count = 0 ) : count(initial_count) {}
+ reference_counter() : count(0) {}
+ reference_counter( int initial_count ) : count(initial_count) {}
~reference_counter()
{
using namespace std;
int use_count() const { return count; }
protected:
- reference_counter_base( int initial_count = 0 ) : count(initial_count) {}
+ reference_counter_base() : count(0) {}
+ reference_counter_base( int initial_count ) : count(initial_count) {}
virtual ~reference_counter_base()
{
using namespace std;
: virtual reference_counter_base
{
protected:
+ reference_counter()
+ : reference_counter_base() {}
reference_counter( int initial_count = 0 )
: reference_counter_base(initial_count) {}
virtual ~reference_counter(){}