_obj_managers.h
来自「http代理程序」· C头文件 代码 · 共 94 行
H
94 行
#ifndef ___obj_managers_h__
#define ___obj_managers_h__
/*
Generic object manager
Traits for the managed objects the object
*/
template< class T >
struct _object_manager
{
// Managed type
typedef T managed_type;
// Function name : init_object
// Description : Init the managed object
// Return type : void
// Argument : managed_type& a
void init_object( managed_type& a )
{
}
// Function name : delete_object
// Description : Destroys the managed object
// Return type : void
// Argument : managed_type& a
void delete_object( managed_type& a )
{
}
};
/*
Pointer manager
*/
template< class T >
struct _pointer_manager :
public _object_manager< T >
{
// Function name : init_object
// Description : Init the managed object
// Return type : void
// Argument : managed_type& a
void init_object( managed_type& a )
{
a = NULL;
}
// Function name : delete_object
// Description : Deletes the pointer
// Return type : void
// Argument : managed_type& a
void delete_object( managed_type& a )
{
if( a != NULL )
{
delete a;
a = NULL;
}
}
};
/*
Array manager
*/
template< class T >
struct _array_manager :
public _object_manager< T >
{
// Function name : init_object
// Description : Init the managed object
// Return type : void
// Argument : managed_type& a
void init_object( managed_type& a )
{
a = NULL;
}
// Function name : delete_object
// Description : Deletes the array
// Return type : void
// Argument : managed_type& a
void delete_object( managed_type& a )
{
if( a != NULL )
{
delete[] a;
a = NULL;
}
}
};
#endif // ___obj_managers_h__
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?