⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 default_impl.cpp

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 CPP
字号:
// file      : Test/ReferenceCounting/DefaultImpl/default_impl.cpp// author    : Boris Kolpackov <boris@kolpackov.net>// copyright : Copyright (c) 2002-2003 Boris Kolpackov// license   : http://kolpackov.net/license.html#include "Utility/ReferenceCounting/DefaultImpl.hpp"using namespace Utility::ReferenceCounting;struct Base : public virtual Interface{  virtual  ~Base () throw ()  {  }};class Impl : public virtual Base,             public virtual DefaultImpl <>{public:  Impl (bool& destroyed)      : dummy_ (false),        destroyed_ (destroyed)  {  }  Impl ()      : dummy_ (false),        destroyed_ (dummy_)  {  }  virtual  ~Impl () throw ()  {    destroyed_ = true;  }public:  void  lock ()  {    lock_i ();  }private:  bool dummy_;  bool& destroyed_;};struct E {};void postcondition (bool p) throw (E){  if (!p) throw E ();}int main (){  try  {    // DefaultImpl    //    {      Impl* a (new Impl);      postcondition (a->refcount_value () == 1);      a->remove_ref ();    }    // ~DefaultImpl    //    {      Impl* a (new Impl);      a->remove_ref ();    }    // add_ref    //    {      Impl* a (new Impl);      a->add_ref ();      postcondition (a->refcount_value () == 2);      a->remove_ref ();      a->remove_ref ();    }    // remove_ref    //    {      bool destroyed (false);      Impl* a (new Impl (destroyed));      a->add_ref ();      a->remove_ref ();      postcondition (destroyed == false && a->refcount_value () == 1);      a->remove_ref ();      postcondition (destroyed == true);    }    // refcount_value    //    {      Impl* a (new Impl);      postcondition (a->refcount_value () == 1);    }    // lock_i    //    {      Impl* a (new Impl);      a->lock ();    }  }  catch (...)  {    return -1;  }}//default_impl.cpp,v 1.1 2005/05/24 04:33:12 turkaye Exp

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -