Item 15: Provide access to raw resources in resource-managing classes.(Effective C++)

it2022-05-08  14

APIs often require access to raw resources, so each RAII class should offer a way to get at the resource it manages. Access may be via explicit conversion or implicit conversion. In general, explicit conversion is safer, but implicit conversion is more convenient for clients.

 1  #include  < iostream >  2  using   namespace  std;  3   4  class  Base  5  {  6  public :  7       void  test()  8      {  9          cout  <<   " inside base "   <<  endl; 10      } 11  }; 12  13  class  Derived 14  { 15  private : 16      Base  base ; 17  public : 18      Base  get ()  const 19      { 20           return   base ; 21      } 22       operator  Base()  const   23      { 24           return   base ; 25      } 26  }; 27  28  int  main() 29  { 30      Derived d; 31      d. get ().test(); 32      Base b  =  (Base)d; 33      b.test(); 34      cin. get (); 35       return   0 ; 36  }

转载于:https://www.cnblogs.com/zhtf2014/archive/2011/03/23/1993071.html


最新回复(0)