Ray's playground

 

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

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 }

posted on 2011-03-23 21:06  Ray Z  阅读(222)  评论(0编辑  收藏  举报

导航