CHAPTER3-13.cpp
上传用户:fjc899
上传日期:2007-07-03
资源大小:187k
文件大小:1k
源码类别:

STL

开发平台:

C/C++

  1. //文件名:CHAPTER3-13.cpp
  2. template <typename T>
  3. class wrapper
  4. {public:
  5. wrapper() throw() : value_(NULL)
  6. {   try { value_ = new T;}
  7.      catch (...) {   }
  8. }
  9. ~wrapper() throw()
  10. {    try { delete value_;}
  11.      catch (...){operator delete(value_);}
  12. }
  13. bool get(T &value) const throw(){return assign(value, *value_);}
  14. bool set(T const &value) throw(){return assign(*value_, value);}
  15. private:
  16.    bool assign(T &to, T const &from) throw()
  17.    {
  18.       bool error(false);
  19.       try{to = from; }
  20.       catch (...) { error = true;}
  21.       return error;
  22.   }
  23.   T *value_;
  24.   wrapper(wrapper const &);
  25.   wrapper &operator=(wrapper const &);
  26. };
  27. void main(){wrapper<int> mywrapper();}