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.
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 }
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 }