Chinaunix首页 | 论坛 | 博客
  • 博客访问: 76338
  • 博文数量: 47
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 560
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-12 18:04
文章分类

全部博文(47)

文章存档

2010年(7)

2009年(40)

我的朋友

分类: C/C++

2009-01-22 16:33:19

对象生命期管理组件的使用

1. 使用接口
   
   int ACE::init();
   int ACE::fini();
   ACE_Singleton 类模板
  
2. 使用说明
  
   对于普通的c++程序标准入口点 int main(int argc, char** argv), ACE
   已经将int ACE::init()初始化好了,而且只有用户开发过程中不要用exit()
   直接退出程序,int ACE::fini()接口会自动在程序退出时调用。
  
   对于一些非标准的入口函数, 开发时必须明确调用 
   int ACE::init();
   int ACE::fini();
   两个接口。
  
   对象生命期管理对象主要管理的是程序中从ACE_Singleton 类模板
   实例化的单件对象。
   所以如果要将单件对象的释放权交给ACE_Object_Manager管理,就必须使用
   ACE_Singleton 类模板实现单件。
  
3. 代码
   
    #include
    #include
    #include
   
    #include
    using namespace std;
   
   
    class A
    {
    public:
        A()
        {
            cout<<"A::A()"<        }
       
        ~A()
        {
            cout<<"A::~A()"<        }
       
         void func()
         {
             cout<<"A::func()"<         }
    };
   
    int main()
    {
        int rc = 0;
        rc = ACE::init();
        if(-1 == rc)
        {
            cout<<"ACE::init() failed."<            return -1;
        }
       
        cout<<"ACE::init() succeed, code=[%d]."<       
       
        ACE_Singleton::instance()->func();
       
        rc = ACE::fini();
        if(-1 == rc)
        {
            cout<<"ACE::fini() failed."<            return -1;
        }   
        cout<<"ACE::fini() succeed.code=[%d]."<   
        return 0;
    }
 
 
  
   
阅读(482) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~